|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Expert Confirmé
![]() ![]() Inscription : septembre 2005 Messages : 1 496 ![]() |
La FAQ MySQL a subi un gros lifting : passage au format standard Développez.com, ajout de plus de 50 questions/réponses ; elle est désormais disponible à l'adresse : http://mysql.developpez.com/faq/.
J'ai également le plaisir de remplacer Florian en tant que responsable de la FAQ, contactez-moi pour toute question, suggestion, critique... Les nouvelles Q/R ont été conçues à partir des questions fréquemment posées sur le forum ; nous espérons ainsi que cette FAQ répondra à vos problèmes les plus courants. D'autre part n'hésitez pas à poster vos propositions de Questions avec les réponses dans cette enfilade, vous pourrez de cette manière contribuer à son évolution.
__________________
"Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN |
|
|
00
|
|
|
#2 |
|
Invité régulier
![]() Inscription : août 2004 Messages : 12 ![]() |
Excellentissime, ça fait une heure que je cherche une fonction de date.
Je viens de la trouver en 2 minutes... Bravo et merci! |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : mai 2004 Messages : 74 ![]() |
tres bonne faq qui convient aux debutants qu'aux personnes un peu plus expérimentées
|
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2004 Messages : 50 ![]() |
Salut,
Je regarde cette faq pour la première fois. J'y voit plein d'infos intéressantes. J'y voit pas la réponse à mon problème: comment interfacer une appli ASP.NET avec MySQL, quel driver utiliser? Une info qui pourrait intéresser pas mal de gens! Philippe |
|
|
00
|
|
|
#5 |
|
Membre actif
![]() Inscription : octobre 2004 Messages : 145 ![]() |
Trés bonne FAQ, relativement complete.
Est-il prévu de rajouter des infos sur MaxDB ? pour le lynx, il existe un driver ODBC pour MySQL qui te permet d'interfacer MySQL avec une appli .net. Tu peux le trouver ici. |
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2004 Messages : 50 ![]() |
Oui, et il y a aussi cet article sur une connexion OLEDB
http://morpheus.developpez.com/MySQLDotNet/ A mon avis la FAQ devrait intégrer un pointeur vers ces 2 sources d'info. Philippe |
|
|
00
|
|
|
#7 | |
![]() ![]() Étudiant Inscription : novembre 2003 Messages : 3 831 ![]() |
Bonjour,
Bon je débute encore avec MYSQL Testé sous EasyPHP 1.6 qui utilise la version 3.23.49 de MySQL. Citation:
__________________
Comment rejoindre la rédaction de www.developpez.com ? Améliorer vos posts en faisant une correction orthographique"Tu as tort d'abuser de ma patience" Sokar |
|
|
|
00
|
|
|
#8 |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
FAQ mise à jour avec les Q/R de le lynx, ren0 et King Kaiser.
__________________
Pensez au bouton
|
|
|
00
|
|
|
#9 | |
![]() ![]() |
Proposé par berceker united dans la rubrique PHP
Citation:
__________________
Mieux comprendre l'environnement web |
|
|
|
00
|
|
|
#10 |
![]() ![]() Étudiant Inscription : novembre 2003 Messages : 3 831 ![]() |
Moi ce que je voudrais savoir c'est l'avantage de cette méthode au insert traditionnel....
__________________
Comment rejoindre la rédaction de www.developpez.com ? Améliorer vos posts en faisant une correction orthographique"Tu as tort d'abuser de ma patience" Sokar |
|
|
00
|
|
|
#11 |
![]() ![]() |
certains trouveront peut-être plus lisible d'avoir des paires champ/valeur plutôt que d'avoir les champs puis les valeurs.... sinon personellement je n'y vois pas d'avantages.
__________________
Mieux comprendre l'environnement web |
|
|
00
|
|
|
#12 | ||
|
Expert Confirmé
![]() ![]() Développeur informatique Inscription : février 2005 Messages : 3 030 ![]() |
Il peut y avoir un petit avantage lorsqu'ont souhaite faire des requêtes dynamiquements.
D'un coté il y a la relation champs=valeur et en parametre c'est soit update ou insert pas la peine d'écrire deux fois champs et valeur. Ainsi c'est plus facile pour la maintenance tous est centralisé au même endroit. Exemple : $req = "champs1=1,champs2=3,champ3=556"; Code :
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
||
|
|
00
|
|
|
#13 |
|
Nouveau Membre du Club
![]() Inscription : juin 2005 Messages : 78 ![]() |
Bonjour,
Je me permet de vous recommander ce lien: http://www.digilife.be/quickreferenc...ySQL-4.02a.pdf Il s'agit des principales commandes Mysql sur une page recto-verso. Marco |
|
|
00
|
|
|
#14 | ||
|
Membre émérite
![]() Inscription : janvier 2006 Messages : 953 ![]() |
Voici une proposition pour la FAQ
Q : Comment rendre le champ d'une table dépendante d'une autre (comment lier 2 tables) ? R : Pour pouvoir lier 2 champs, il faut d'abord que les 2 conditions suivantes soient réunies : - les 2 champs doivent constituer la première colonne d'un index - les 2 champs doivent avoir le même format. Inutile de chercher à lier un champ VARCHAR(10) avec un champ VARCHAR(15). Inutile aussi de chercher à lier deux champs dont l'interclassement est différent (et en plus, c'est une source d'erreur pas facile à trouver). Selon le type de relation désiré, on peut décider ce qui arrive lorsque l'on effectue une action sur un enregistrement dans la table MERE : - les actions envisagées sont DELETE et UPDATE - les conséquences sur la table FILLE sont, pour chaque action : CASCADE (on efface/met à jour aussi la table FILLE), SET NULL (on met à NULL), NO ACTION (on ne fait rien) et RESTRICT (merci à quelqu'un de compléter, j'ignore ce que ça fait). Ensuite, supposons 2 tables MERE et FILLE. Pour que le champ NOM_FILLE de la table FILLE dépende du champ NOM_MERE de la table MERE, il faut effectuer la requête Code :
|
||
|
|
00
|
|
|
#15 |
|
Membre du Club
![]() Inscription : septembre 2006 Messages : 72 ![]() |
Encore une petite proposition :
J'avais chercher sur le forum et sur la faq comment réccupérer le dernier enregistrement inséré, et je n'ai pas trouvé ce que je cherchais... Voici ma méthode, qui peux parfois être pratique dans certains cas, le mien est tordu, je dois l'admettre, mais elle peut être utile sur la faq : J'ai une base de donnée qui contient une clée primaire de référence de livre. Les enregistrements ne se suivent pas tous et il y a plusieurs catégories de livres. certains ont leur référence qui est comprise entre 0 et 200000 d'autre entre 300000 et 400000. ect... Ce n'est pas super, mais cela permet d'identifier rapidement la catégorie du livre selon la référence. Il n'y a pas d'AUTO_INCREMENT dans ma table, car il faut parfois saisir des livres dans une catégorie, et parfois dans d'autres catégories. Par défaut, sur une nouvelle fiche d'ouvrage, il est pratique d'avoir la derniere référence saisie incrémenté de 1. Voici donc les deux requêtes qui permettent de réccupérer le réel dernier enregistrement : SELECT COUNT(*) FROM `ma_table` WHERE 1; SELECT mon_dernier_enregistrement FROM `ma_table` LIMIT le_resultat_precedant, 1; Voila, ca peut toujours servir ! |
|
|
00
|
|
|
#16 | |
|
Membre émérite
![]() ![]() Inscription : mars 2003 Messages : 794 ![]() |
J'ai été récemment confronté au douleureux probleme de perte du mot de passe ROOT !!
Voici le moyen de changer un mot de passe ROOT perdu: Citation:
__________________
Yes We Can |
|
|
|
00
|
|
|
#17 |
|
Expert Confirmé
![]() ![]() Développeur informatique Inscription : février 2005 Messages : 3 030 ![]() |
L'utilisation d'un limit sur une ou des tables ayant beaucoup d'enregistrements peut énormement plomber le serveur. Surtout si vous retourner des gros contenu avec beaucoup sur des petites intervale de page. Par exemple un forum qui retourne 30 enregistrements et le pire c'est l'ajout de l'ORDER BY qui ici achève le CPU mais qui est quasi obligatoire.
Pour optimiser les performances il faut deux requêtes. La première requête utilise le LIMIT mais ne retourne que les index. Code :
SELECT idtopic FROM forum ORDER BY date LIMIT 100,130; Dans la second requête vous utilisez la fonction IN(...). IN permet d'insérer un suite de valeur que vous souhaiter retourner. Code :
SELECT * FROM forum WHERE idtopic IN(100,101,102,103,...); Avec cette méthode c'est totalement liquide.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#18 |
|
Membre Expert
![]() ![]() Inscription : mai 2002 Messages : 1 023 ![]() |
Excellente méthode berceker united !
Je viens de tester sur une base de données médiocrement modélisée et cela me donne de bons résultats. Par contre, sur une base correctement modélisé (taille d'enregistrement fixe, index ordonné), le gain est nul. Néanmoins, je changerais les valeurs de votre second exemple. Certains débutants pourrait faussement comprendre qu'il faut remplacer par Code :
SELECT * FROM forum WHERE id_topic IN (100, 101, 102, 103...., 128, 129, 130) Donc je conseillerais ces exemples : Code :
SELECT idtopic FROM forum LIMIT 100,30 Code :
SELECT * FROM forum WHERE idtopic IN(100,106,108,110,...,166,170);
__________________
Alexandre T. PHP5/MySQL5 Codes prêts à l'emploi 30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc... Mes articles |
|
|
00
|
|
|
#19 | ||
|
Membre Expert
![]() ![]() Inscription : mai 2002 Messages : 1 023 ![]() |
big_ben3333, je ne pense pas que votre solution soit apportée à la FAQ. En effet, elle résulte plus à mon sens d'une réflexion pour contourner des problèmes créés par une base très mal modélisé.
Il existe des bases mal modélisé, et certaines astuces sont utiles, mais votre cas est assez particulier. De plus on peut planter votre méthode dans le cas d'utilisateurs réalisant des opérations simultanément ce qui est fréquent sur le web ! Exemple Code :
Si l'utilisateur 1 à inséré son livre 4 pendant cet intervalle de 45 millisecondes, votre algorithme retourne 4 et non 3 ! Et la méthode avec LAST_INSERT_ID, elle, permet d'éviter les accès concurrents. Néanmoins, je vous remercie de votre aide et n'hésitez SURTOUT pas à nous conseiller d'autres questions-réponses
__________________
Alexandre T. PHP5/MySQL5 Codes prêts à l'emploi 30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc... Mes articles |
||
|
|
00
|
|
|
#20 | |
|
Expert Confirmé
![]() ![]() Développeur informatique Inscription : février 2005 Messages : 3 030 ![]() |
Citation:
Il faut pas utiliser cette methode à toute les sauces.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com