Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1682 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Problème de performance avec un index

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySQL] Problème de performance avec un index

n°200092
Core 666
Posté le 22-08-2002 à 18:34:55  profilanswer
 

Salut :)
 
J'ai un petit soucis de performance, je voulais savoir si c'était normal ou s'il y avait quelque chose à faire. J'ai une table news, qui possède une clef primaire "id", ainsi qu'un index compound (index_news) portant sur 2 champs : le champs "auteur" et le champ "archive" (dans cet ordre là). Grâce à cet index, l'obtention du dernier enregistrement qui valide une clause WHERE sur ces 2 champs est instantanée :
 

mysql> EXPLAIN SELECT max(id) FROM news WHERE auteur = 61 AND archive = 0;
+------------------------------+
| Comment                      |
+------------------------------+
| Select tables optimized away |
+------------------------------+
1 row in set (0.00 sec)


 
Par contre, je suis très surpris de voir que MySQL est obligé de parcourir tous les enregistrements qui valident ma clause WHERE pour les compter :heink:  Ca ne demande pas énormément de temps (0.1 seconde), mais c'est déjà un dizième de seconde de trop à mon goût :
 

mysql> EXPLAIN SELECT count(*) FROM news WHERE auteur = 61 AND archive = 0;
+---------+------+----------------+-------------+---------+-------------+------+-------------------------+
| table   | type | possible_keys  | key         | key_len | ref         | rows | Extra                   |
+---------+------+----------------+-------------+---------+-------------+------+-------------------------+
| news    | ref  | index_news     | index_news  | 4       | const,const | 594  | where used; Using index |
+---------+------+----------------+-------------+---------+-------------+------+-------------------------+
1 row in set (0.00 sec)


 
C'est normal doc ? :)


Message édité par Core 666 le 22-08-2002 à 18:38:16
mood
Publicité
Posté le 22-08-2002 à 18:34:55  profilanswer
 

n°200186
MagicBuzz
Posté le 22-08-2002 à 20:02:16  profilanswer
 

ajoute "id" à ton index (il me semble)

n°200274
Core 666
Posté le 22-08-2002 à 23:08:41  profilanswer
 

Ca ne change rien ...

n°200308
joce
Architecte / Développeur principal
"BugHunter"
Posté le 23-08-2002 à 01:44:12  profilanswer
 

il parcourt le fichier d'index pour compter, pas le fichier de data.
Tu pourras pas mieux faire à part stocker en dur dans une table le nombre de résultat

n°200320
Core 666
Posté le 23-08-2002 à 08:24:19  profilanswer
 

Je trouve surprennant que cette information ne soit pas stockée directement dans les propriétés de l'index. C'est pareil sur MySQL 4 ?
 
Merci pour ta réponse joce en tout cas, c'est exactement ce que je voulais savoir :jap:

n°200333
gizmo
Posté le 23-08-2002 à 09:26:47  profilanswer
 

ce qui est stocké dans la propritété de l'index, c'est le nombre total de valeur, mais pas le nombre pour chaque valeur de l'index, sinon ca prendrait une place folle.

n°202536
joce
Architecte / Développeur principal
"BugHunter"
Posté le 27-08-2002 à 08:49:23  profilanswer
 

gizmo a écrit a écrit :

ce qui est stocké dans la propritété de l'index, c'est le nombre total de valeur, mais pas le nombre pour chaque valeur de l'index, sinon ca prendrait une place folle.



tu m'étonnes et ca mettrait des plombes a être updaté :o


---------------
Protèges carnets personnalisés & accessoires pour bébé

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Problème de performance avec un index

 

Sujets relatifs
[SGBDR] les index 'BITMAP'[vbs] Prôblème à la con
[PHP/MYSQL] Pb connection Mysql avec EasyPHP 1.6[MySQL] help schéma bdd... newbee inside
Arrondir dans une requette MySQL ?petit probleme pour charger mon doc xml
[MySQL] Connaître la date d'un éventuel dernier accès. [MySQL ] - SELECT et UPDATE
Diaporama - problème avec Opera...[Java] Probleme de comprehension avec l'API Cryptix (maj : resolu)
Plus de sujets relatifs à : [MySQL] Problème de performance avec un index


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR