Dans un tb avec 1 mil. lignes si je fais (après je redémarre l'ordinateur - donc rien il est mis en mémoire cache):
1. SELECT price,city,state FROM tb1 WHERE zipId=13458;
le résultat est 23rows à 0.270sQuel est le plus rapide, key_cache ou cache du système d'exploitation?
après que je lance « INDEX DE LA CHARGE EN CACHE TB1 » (key_buffer_size = 128M et indice total taille pour tb est 82M): 2. SELECT price,city,state FROM tb1 WHERE zipId=24781;
le résultat est 23rows dans 0.252s, Key_reads reste constante, Key_read_requests est incrémenté avec 23
BUT
après je charge 'zipId' dans le cache du système d'exploitation, si je fais tourner de nouveau la requête:
2. SELECT price,city,state FROM tb1 WHERE zipId=20548;
le résultat est 22rows en 0.006s
Ceci est juste un exemple simple, mais je cours des dizaines de tests et de combinaisons. Mais les résultats sont toujours les mêmes.
J'utilise: MySql avec MyISAM, WINDOWS 7 64, et le query_cache est 0; zipId c'est un index régulier (pas la clé primaire)
DEVRAIT PAS key_cache être plus rapide que le cache du système d'exploitation ??
NE DEVRAIT PAS être une énorme différence de vitesse, après avoir chargé l'index dans le cache ??
(dans mon test c'est presque pas de différence).
J'ai lu beaucoup de sites Web, de tutoriels et de blogs à ce sujet, mais aucun d'entre eux ne parle vraiment de la différence de vitesse. Donc, toutes les idées ou les liens seront grandement appréciés.
Merci.
Quelle est la conception de la table? Key Cache ne sera pas rapide si l'index utilisé ne couvre pas le sipid, le prix, la ville et l'état. Otherwize la requête lit l'index, puis la table. –
@Thomas Jones-Low L'indice couvre tous les 3 col. J'ai fait quelques tests et ce n'est pas une différence significative si je choisis 1 ou 3 col. OU si les colonnes sélectionnées sont indexées ou non – silversky
@ Thomas Jones-Low Et aussi pourquoi la même requête c'est beaucoup, beaucoup .. plus vite sur le cache du système d'exploitation? (fondamentalement sont les mêmes étapes impliquées) – silversky