OVH Cloud OVH Cloud

Fonctions, triggers et procedures dans phpM yAdmin

16 réponses
Avatar
Pascal Poncet
Bonsoir à tous,

Une question bête concernant l'interface d'administration phpMyAdmin :
Y a-t-il un moyen, lorsqu'on a sélectionné une base, d'avoir à cet
endroit une liste des fonctions utilisateur, triggers et autres
procédures qui ont été créées pour cette base ?

Je pense à une éventuelle configuration comme celle qui permet de
visualiser les références entre les tables, soit
$cfg['Servers'][$i]['pmadb'] et le script associé.
Hélas, je n'ai rien trouvé dans le manuel à ce sujet.

Bien sûr, je sais qu'on les retrouve dans la base 'information_schema',
mais l'aller-retour n'est pas très pratique, d'où ma question.


--
Cordialement,
Pascal

6 réponses

1 2
Avatar
CrazyCat
On 03/04/2011 23:18, Mickael Wolff wrote:
Heureusement que tu as mis « la plupart ». :o)



Oui, je savais que tu étais dans le coin :)

Cet outil introduit souvent des bogues, car la plupart de ces
utilisateurs sont des débutants, qui ne comprennent pas ce qu'ils font.



Non, il n'introduit pas de bug, par contre il interprète les requètes
(ou plutôt les données) et corrige de lui-même certaines erreurs du CKI,
empéchant de reproduire des erreurs que l'on a dans le code.

Du coup, c'est (toujours ?) mal configuré. Et un utilisateur avancé sait
qu'il ira plus vite et aura plus de puissance en passant par un éditeur
de texte et l'invocation d'une commande (depuis l'éditeur, évidement).



Pourquoi un éditeur texte ? mysql en console, c'est nickel :)

J'ai dit que je n'aime pas PHPMyAdmin ? :)



Cela se défend. Il est très pratique pour faire un extract, pour vite
transformer une requête en vue, pour ne pas s'embéter à connaitre la
sintaxe d'un alter ou d'un create user...
Mais ça reste une interface, avec sa part d'interprétation et ses lacunes.
Pour ma part, j'utilise autant phpMyAdmin que la console, et je m'en
sors bien, en ralant autant après les deux :)

--
Tchattez en liberté: http://www.zeolia.net
Aide informatique: http://www.g33k-zone.org
Avatar
SQLpro
Le 07/04/2011 14:16, Sebastien Lardiere a écrit :
On 04/07/2011 01:42 PM, Olivier Masson wrote:
MyISAM n'est-il pas bcp plus rapide qu'InnoDB ?



Si, en effet.



Sauf que l'un n'a rien à voir avec l'autre... dans un cas c'est du
fichier cobol averc un surcouche pseudo SQL, dans l'autre c'est presque
du relationnel....


Si pour certaines bases je n'ai pas besoin de rollback, de foreign key
et autres spécificités, *pourquoi* devrais-je m'imposer InnoDB ? Parce
que ça fait plus sérieux ?



Oui ! C'est plus "sérieux", dans le sens ou ça respecte ACID.



pas tout à fait, loin s'en faut... Certaines requêtes relationnelles
sont toujours infaisables avec MySQL !


Vous pouvez utiliser MyISAM si vous êtes conscient que vous pouvez
perdre des données, sans être prévenu, et si ça n'est pas grave pour vous.

Ça ne répond pas au même besoin, c'est tout.





--
Frédéric BROUARD - expert SGBDR et SQL - MVP SQL Server - 06 11 86 40 66
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Enseignant Arts & Métiers PACA, ISEN Toulon et CESI/EXIA Aix en Provence
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Avatar
SQLpro
J'ai commencé à m'amuser à comparer dans mes articles les plus récents
les fonctionnalités de MySQL, PostGreSQL et SQL Server (qui me sert
d'étalon).

En gros y'a pas photo. Comme je le dit dans cet article, MySQL reste
toujours un ersatz de SGBDR et ne sait pas faire du relationnel
convenablement, tout simplement parce qu'il n'est toujours pas
ensembliste. Alors le multithreading on en est encore à cent mille
lieues :
http://blog.developpez.com/sqlpro/p9136/langage-sql-norme/mysql-un-sgbdr-poudre-aux-yeux/

Voici par exemple une comparaison MySQL / SQL Server sur l'indexation
Full Text.. C'est tout simplement risible !
http://blog.developpez.com/sqlpro/p9344/langage-sql-norme/indexation-textuelle-full-text-search-no/

En voici une autre sur l'indexation avec comparaison de MySQL,
PostGreSQL Oracle et SQL Server... Bref, ... c'est affligeant pour MySQL !
http://blog.developpez.com/sqlpro/p9816/langage-sql-norme/tout-sur-l-index/

Enfin en faisant un article sur des requêtes un peu compliquées (mais
une seule table tout de même...) je me suis amusé à faire un benchmark
avec SQL Server, PostGreSQL et MySQL...
Bref, là c'est à se tordre de rire....
http://blog.developpez.com/sqlpro/p9821/langage-sql-norme/agregation-d-intervalles-en-sql-1/
MySQL est 5947 fois moins rapide sur un test avec 10 000 lignes par
rapport à SQL Sever alors qu'avzc PG ou SQL Server on arrive à traiter 1
à 3 millions de lignes en moins de temps que ce que MySQL fait pour 10
000 lignes !!!!!!!!!!

A +


--
Frédéric BROUARD - expert SGBDR et SQL - MVP SQL Server - 06 11 86 40 66
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Enseignant Arts & Métiers PACA, ISEN Toulon et CESI/EXIA Aix en Provence
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************


Le 07/04/2011 08:37, Bruno Baguette a écrit :
Le 07/04/11 00:01, Pascal Poncet a écrit :
Le 06/04/2011 16:23, Bruno Baguette a écrit :
En même temps, les développeurs qui ont besoins de procédures stockées,
triggers et fonctions utilisent plutôt des bases de données sérieuses
comme PostgreSQL.



Bon, on est un peu (voire totalement) hors charte mais, comme le
newsgroup est modéré, je suppose qu'on est implicitement autorisé à
développer le sujet.



On est complètement hors charte, je vais donc positionner la suite du
débat sur fr.comp.applications.sgbd, ca ne fera pas de tort (on y sera
en charte), et puis ca y roupille, pour le moment...

Euh... MySQL, c'est pas un SGBDR sérieux ?
Faudra le dire à Google, Amazon, Fnac, etc.
Je veux bien en discuter, car rien n'est définitivement acquis, mais
il faudra quand même amener quelques arguments solides avant toute
conclusion hâtive.


>
Même dans le contexte particulier des routines, triggers et events, je
ne vois pas de faiblesse manifeste à leur implémentation de SQL 2003.

Je n'ai pas encore eu l'occasion de tester le parallélisme, la
réplication ou le clustering, mais je n'ai pas entendu dire que
c'était une daubasse.



Bon, puisque j'ai ouvert la fosse à trolls, j'assume ! :-)

Je précise que j'ai été zieuter les récents changements de MySQL par
honnêteté, dès fois que... Et j'ai bien fait puisque changements il y a eu.

A l'époque (un bail) où j'ai fait mes choix, MySQL ne gérait pas les
sous-requêtes, ni les procédures stockées. PostgreSQL répondait à mes
besoins, je n'ai pas changé de SGBDR depuis.

Jusqu'il y a peu (fin 2010), MySQL était une daubasse dans sa
configuration par défaut, c'est à dire avec le moteur MyISAM (pas de
clef étrangères, acceptation de données plus grandes que la colonne
censée la recevoir, ...)

En d'autres termes, vous pouviez virer un enregistrement référencé par
d'autres (et donc perdre la cohérence de vos données), ou vous pouviez
insérer une chaine de 200 caractères dans un varchar(20) sans que MySQL
ne vous refuse l'insertion (et donc vous retrouver avec une chaine
tronquée).

Enfin, si vous utilisez une table (en insert ou en update) en MyISAM
lors d'un plantage du serveur, vous aviez de bonnes chances de vous
retrouver avec une table corrompue.

Bref, utiliser MySQL avec MyISAM relève de l'inconscience (surement une
grosse partie des utilisateurs), ou de la folie furieuse à moins de
savoir *ce que l'on fait*.

Le rachat de MySQL par Oracle aura permit (c'est peut-être la seule
bonne chose), que le moteur par défaut ne soit plus MyISAM, mais bien
InnoDB (qui appartenait déjà à Oracle avant, si je ne me trompe pas).

Un comparatif des fonctionnalités et des performances serait intéressant
à refaire (à moins qu'un comparatif *récent* ne soit déjà fait). Je ne
suis pas bien placé pour le faire puisque je n'utilise que rarement
MySQL (et aussi parce que je n'ai pas le temps de le faire, mais ca je
ne le dis pas !).

Pour l'aspect de la réplication, je ne vais pas m'aventurer sur ce
terrain, je n'ai jamais utilisé cela avec MySQL (uniquement en
PostgreSQL). Donc je n'ai pas d'expérience à donner sur ce point ! :-)

Je peux avoir loupé un épisode, mais l'avenir de MySQL n'est-il pas
incertain avec son rachat par Oracle ?



Hélas, il semble bien incertain, du moins dans ses perspectives de
développement, car Oracle est réputé le positionner définitivement en
entrée de gamme, anti-cannibalisation oblige.



Enfin, entre une DB MySQL/PostgreSQL,... ou une DB Oracle, il y a une
grosse marge de coût quand même (serveur, DBA,...).

Maintenant, l'alternative semble très sérieuse du côté de MariaDB.
Voir [http://mariadb.org/].
De plus, pour revenir dans la charte, il n'y a apparemment aucun
problème à utiliser PHP en client.
Voir [http://kb.askmonty.org/v/mariadb-versus-mysql]



J'en avais entendu parler, mais j'ignorait qu'ils étaient compatibles
avec le client MySQL (quand on voit l'auteur, on comprend mieux ensuite).

Le tout est de voir s'il sera adopté largement, mais c'est sans doute
trop tôt ? Il y a aussi Drizzle, un fork signalé par Mickael.

Avatar
Olivier Masson
Le 11/04/2011 14:19, SQLpro a écrit :

Sauf que l'un n'a rien à voir avec l'autre... dans un cas c'est du
fichier cobol averc un surcouche pseudo SQL, dans l'autre c'est presque
du relationnel....




On s'en fout, il faut lire la totalité du fil pour comprendre le
pourquoi de cette comparaison ici.
Si tu as juste besoin d'enregistrer des sessions utilisateurs pour
remplacer des cookies sur un petit site, MyISAM est très bien. J'utilise
également SQLite.

Si, par contre, tu me dis que PostgreSQL à un moteur facilement
accessible (cad facile à trouver, installer et utiliser avec les
langages web courants) qui va aussi vite que MyISAM pour des opérations
ultra-basiques, là c'est déjà plus intéressant.
Avatar
SQLpro
Le 13/04/2011 12:42, Olivier Masson a écrit :
Le 11/04/2011 14:19, SQLpro a écrit :

Sauf que l'un n'a rien à voir avec l'autre... dans un cas c'est du
fichier cobol averc un surcouche pseudo SQL, dans l'autre c'est presque
du relationnel....




On s'en fout, il faut lire la totalité du fil pour comprendre le
pourquoi de cette comparaison ici.
Si tu as juste besoin d'enregistrer des sessions utilisateurs pour
remplacer des cookies sur un petit site, MyISAM est très bien. J'utilise
également SQLite.

Si, par contre, tu me dis que PostgreSQL à un moteur facilement
accessible (cad facile à trouver, installer et utiliser avec les
langages web courants) qui va aussi vite que MyISAM pour des opérations
ultra-basiques, là c'est déjà plus intéressant.



Mais de l'accès fichier Cobol, ça va encore plus vite que MyISAM !!!
Pourquoi faire du SGBD si c'est pour ne pas utiliser les transactions ni
les contraintes ? C'est idiot !

A +



--
Frédéric BROUARD - expert SGBDR et SQL - MVP SQL Server - 06 11 86 40 66
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Enseignant Arts & Métiers PACA, ISEN Toulon et CESI/EXIA Aix en Provence
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Avatar
Olivier Masson
Le 13/04/2011 14:58, SQLpro a écrit :

Mais de l'accès fichier Cobol, ça va encore plus vite que MyISAM !!!
Pourquoi faire du SGBD si c'est pour ne pas utiliser les transactions ni
les contraintes ? C'est idiot !

A +




De l'accès fichier Cobol ! Si ma mère n'en avait pas fait il y a 40 ans,
je n'aurais peut-être jamais entendu le nom de la langage :)
Sans blague, comment veux-tu que j'utilise un fichier cobol simplement ?
Je fais simplement de gentils petits sites et il m'est très simple de
gérer les sessions et autres infos avec MySQL/MyISAM.
Et je doute que beaucoup de langage web permettent d'utiliser Cobol
(sans passer par les commandes système)
1 2