Optimisation Bdd ?.. - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Optimisation Bdd ?.. (/showthread.php?tid=4390) Pages :
1
2
|
Optimisation Bdd ?.. - Unkof - 05-10-2009 Bonjour, Une question pratique .... Quelqu'un sait comment savoir quelle tdd augmente la valeur de Handler_read_rnd_next ? Je me suis apercu que j'avais un petit probleme d'optimisation d'indexation de tdd sur mon serveur dédié, le problème étant que j'ai environ 240 tdd sur ce serveur, 8 sites pour un total très approximatif de 240000 lignes de code, et que je ne peux pas me retaper tous les sources pour voir d'où ca vient !?.... Quelqu'un aurait une idée là dessus ?... RE: Optimisation tdd ?.. - naholyr - 05-10-2009 TDD ? Pour moi c'est soit "Test Driven Development", soit "Tube De Dentifrice", mais dans aucun cas ça ne semble coller à ton message :/ RE: Optimisation tdd ?.. - Roworll - 05-10-2009 Table de Données ? Quoi qu'il en soit, l'acronyme utilisé est peu conventionnel et bien mystérieux. Au passage, "un problème d'indexation" c'est un peu trop vague comme description. Serait-il possible d'avoir des informations plus détaillées ? Messages,d'erreurs, symptômes, etc. RE: Optimisation tdd ?.. - Unkof - 05-10-2009 Roworll:Ben heu .... comment dire, Handler_read_rnd_next, ca ne génère pas une erreur, ca t'indique juste si tes requetes et tes index de tdd sont bien structurées. En clair, si tes requetes utilisent bien tes index, et si t'as pas des requêtes qui parcourent ta table sans utiliser aucun index, d'où un problème d'optimisation/performance. La définition de cette variable c'est : Le nombre de requêtes de lecture du prochaine enregistrement dans le fichier. Élevé si vous faites plusieurs parcours de tables. Ceci suggère que vos tables ne sont pas correctement indexées ou que vos requêtes ne sont pas écrites de façon à tirer parti des index que vous avez définis. D'où ma question de savoir si on peut connaitre les tdd qui seraient mal indexées ou encore mieux, les requetes concernées, mais là j'y crois pas trop. Naholyr:Tdd ce sont les table de données, oui. J'ai jamais essayé de foutre des données dans un tube de dentifrice, mais c'est faisable, vu que c'est un conteneur.. lol. RE: Optimisation tdd ?.. - christouphe - 05-10-2009 Citation :"Nombre de requêtes de lecture de la prochaine ligne dans le fichier de données. Ce chiffre sera grand si vous faîtes de nombreux scans de tables. Généralement, cela indique que vos requêtes ne sont pas écrites pour profiter des index que vous avez mis en place." Citation :Nombre de fois que la première ligne a été lue dans un index. Si ce chiffre est haut, c'est que le serveur fait de nombreuses recherches par analyse complète de la table, par exemple SELECT col1 FROM foo, en supposant que col1 est indexé. RE: Optimisation tdd ?.. - Unkof - 05-10-2009 Christouphe: ... je sais que c'est un probleme de SELECT. Ce que je cherche c'est plutôt savoir si il est possible d'avoir les infos sur la tdd qui aurait ce probleme (genre un log ou autre). Je ne vais pas me taper 240000 ligne de code et rechercher tous les SELECT sur 8 sites ... Je n'utilise jamais SELECT *, ca baisse trop les performances .... RE: Optimisation tdd ?.. - christouphe - 05-10-2009 je donnais les 2 définitions car elles ont l'air de s'opposer, c'est tout. J'avias bien compris que tu savais d'où ç venait . La première nous dis "ça vient des requêtes qui ne profitent pas des index", la deuxième, venant du site mysql dit l'inverse. RE: Optimisation tdd ?.. - Roworll - 05-10-2009 Une solution possible qui peut être facilement mise en place si tu passes par une classe pour les accès BDD : A chaque appel, trace dans un fichier de log le contenu du 'EXPLAIN' sur ta requête. Ce mode "debug" te permettra peut être de trouver les requêtes n'exploitant pas correctement les index. Tu peux aussi traquer le log des "slow queries" en y espérant trouver celles qui font défaut. RE: Optimisation tdd ?.. - Unkof - 05-10-2009 Oui c'est vrai, je n'avais pas fait attention à la deuxieme ... ^^ D'après mes tests, je dirai que c'est la première la bonne, et c'est aussi celle qu'on trouve là : http://dev.mysql.com/doc/refman/5.0/fr/server-status-variables.html Tu l'as trouvé où la seconde ?? Enfin bref, pour revenir à la question d'origine, y a-t-il un log ou autre qui permette de savoir d'où vient ce problème, ou au moins de quelle tdd ? Et en parlant d'optimisation et de performance, lequel est le plus rapide : SELECT blabla FROM toto WHERE id='100' LIMIT 1 ou SELECT blabla FROM toto WHERE id='100' Sachant que l'index serait défini sur id, et qu'il ne peut y avoir qu'une seule réponse à la requête. Quelle version utilise le moins de mémoire (si il y a une différence?). La première je suppose ? Roworll:Y a pas de classe, et j'ai 8 sites différents sur le serveur. C'est pour ca que je cherche plutôt à savoir si il y a pas une possibilité coté serveur (un log ou autre ...) RE: Optimisation tdd ?.. - christouphe - 05-10-2009 je crois que c'est la seconde car même si tu n'as qu'une seule réponse, MySQL va appliquer le LIMIT 1 => opération supplémentaire. Mais ce n'est que mon avis, j'ai pas eu le temps de chercher. Pour la seconde citation (la première dans mon post) je l'ai trouvé dans un forum... ça y est : http://www.google.fr/#hl=fr&source=hp&q=Handler_read_rnd_next&btnG=Recherche+Google&meta=&aq=f&oq=Handler_read_rnd_next&fp=2da48a14dbd324b8 + 1ere sortie: http://forum.webrankinfo.com/mysql-handler-read-rnd-next-t72036.html => Post de jarreweb |