Archives FluxBB.fr

Les archives de FluxBB.fr

Vous n'êtes pas identifié(e).

#1 04-10-2009 20:53:57

progent
Membre

FluxBB et MySQL : problème d'index ?

Bonsoir,

Je cherche à optimiser mon serveur MySQL.
J'ai donc activé la journalisation des requêtes n'utilisant pas d'index.

Il se trouve que, en quelques minutes, j'ai des centaines de lignes du type :

# Query_time: 0  Lock_time: 0  Rows_sent: 1  Rows_examined: 323
SELECT u.*, g.*, o.logged FROM forum_users AS u INNER JOIN forum_groups AS g ON u.group_id=g.g_id LEFT JOIN forum_online AS o ON o.ident='XXXX' WHERE u.id=1;

# Query_time: 0  Lock_time: 0  Rows_sent: 0  Rows_examined: 324
SELECT * FROM forum_online WHERE logged<1254680727;

# Query_time: 0  Lock_time: 0  Rows_sent: 1  Rows_examined: 324
SELECT u.*, g.*, o.logged FROM forum_users AS u INNER JOIN forum_groups AS g ON u.group_id=g.g_id LEFT JOIN forum_online AS o ON o.ident='XXXX' WHERE u.id=1;

# Query_time: 0  Lock_time: 0  Rows_sent: 0  Rows_examined: 325
SELECT * FROM forum_online WHERE logged<1254680727;

# Query_time: 0  Lock_time: 0  Rows_sent: 1  Rows_examined: 325
SELECT u.*, g.*, o.logged FROM forum_users AS u INNER JOIN forum_groups AS g ON u.group_id=g.g_id LEFT JOIN forum_online AS o ON o.ident='XXXX' WHERE u.id=1;

# Query_time: 0  Lock_time: 0  Rows_sent: 0  Rows_examined: 0
UPDATE forum_online SET logged=1254681927 WHERE ident='XXXX';

où XXXX sont des adresses IP.

Y a-t-il un problème d'index quelque part ?

Merci de votre réponse !

Hors ligne

#2 05-10-2009 10:20:13

Nickko
Membre

Re : FluxBB et MySQL : problème d'index ?

Il s'agit du journal, non ?


Nickko
Ergonome / Usability expert

http://nickko.org
http://www.usability.fr/

Hors ligne

#3 05-10-2009 15:24:12

progent
Membre

Re : FluxBB et MySQL : problème d'index ?

Ces lignes sont extraites du slow-query.log, ayant activé la journalisation des requêtes n'utilisant pas d'index (dans my.cnf : log-queries-not-using-indexes = 1)

Hors ligne

#4 05-10-2009 15:30:53

Nickko
Membre

Re : FluxBB et MySQL : problème d'index ?

Puisque tu n'utilises pas d'index, comment pourrait-il y avoir un problème avec ce dernier ?

En revanche, je vois un problème de requête, l'utilisation des * plomb les perfs de la DB. Il est préférable de ne sélectionner que les champs dont on a besoin.

Ensuite je vois un autre problème potentiel, mais j'ai tout de même un doute.
J'ai ouïe dire que les requêtes perdaient en efficience lorsqu'elles comportaient des inner join. les wheres seraient plus efficace. Attention c'est une information à vérifier.


Nickko
Ergonome / Usability expert

http://nickko.org
http://www.usability.fr/

Hors ligne

#5 05-10-2009 15:53:39

progent
Membre

Re : FluxBB et MySQL : problème d'index ?

Merci pour la réponse.

Justement, je ne sais pas s'il faut ajouter des index dans la table MySQL. C'est pour cette raison que j'ai activé la journalisation.

La requête ci-dessus se trouve dans mon fichier include > functions.php :

$result = $db->query('SELECT u.*, g.*, o.logged FROM '.$db->prefix.'users AS u INNER JOIN '.$db->prefix.'groups AS g ON u.group_id=g.g_id LEFT JOIN '.$db->prefix.'online AS o ON o.ident=\''.$remote_addr.'\' WHERE u.id=1') or error('Impossible de retrouver les informations d\'invité', __FILE__, __LINE__, $db->error());

C'est donc cette requête qui n'utilise pas d'index, et j'aimerais savoir si on peut en ajouter.

Merci !

Hors ligne

#6 05-10-2009 16:01:07

Nickko
Membre

Re : FluxBB et MySQL : problème d'index ?

Je dirais qu'on peut toujours en ajouter mais qu'avant de se poser la question des index, j'optimiserais les requêtes.


Nickko
Ergonome / Usability expert

http://nickko.org
http://www.usability.fr/

Hors ligne

Pied de page des forums