Bonjour,
Attention, ce problème est trés étrange. Je ne suis pas expert en mysql, mais pas débutant non plus.
Voilà.
J'ai une table users avec à peu près 100,000 lignes.
Il y a un champ state, qui est un int(4) et qui n'a que 3 valeurs différentes.
Il y a un index sur ce champ.
La requête suivante prend 1 seconde (ce qui est énorme!)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT id FROM users WHERE state > '0' ORDER BY id DESC LIMIT 1
J'ai un autre champ birthyear qui est un int(11) sans index.
La requête suivante (à peu près la mêmem avec une novuelle condition) prend moins de 0.001 seconde (!)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT id FROM users WHERE birthyear > '1980' ORDER BY id DESC LIMIT 1
Dois-je enlever l'index sur state ????
Je ne comprends pas...
Partager