In einem TB mit 1 mil. wenn ich Zeilen tun (nachdem ich den Computer neu starten - so nichts es zwischengespeichert):
1. SELECT price,city,state FROM tb1 WHERE zipId=13458;
das Ergebnis ist 23rows in 0.270sWas ist schneller, key_cache oder OS-Cache?
nachdem ich 'LOAD INDEX INTO CACHE tb1' (key_buffer_size = 128M und insgesamt laufen Index Größe für tb ist 82M): 2. SELECT price,city,state FROM tb1 WHERE zipId=24781;
das Ergebnis ist 23rows in 0.252s bleibt Key_reads konstant, wird Key_read_requests mit 23 erhöht
BUT
nachdem ich 'zipId' in OS-Cache laden, wenn ich wieder die Abfrage ausführen:
2. SELECT price,city,state FROM tb1 WHERE zipId=20548;
Das Ergebnis ist 22 Zeilen in 0,006s
Dies ist nur ein einfaches Beispiel, aber ich habe Dutzende von Tests und Kombinationen. Aber die Ergebnisse sind immer gleich.
Ich verwende: MySql mit MyISAM, WINDOWS 7 64, und der query_cache ist 0; zipId es ist ein regulärer Index (nicht Primärschlüssel)
SOLLTE key_cache nicht schneller sein als OS-Cache ??
SOLLTE NICHT ein großer Geschwindigkeitsunterschied sein, nachdem ich den Index in den Cache geladen habe ??
(in meinem Test ist es fast kein Unterschied).
Ich habe eine Menge Websites, Tutorials und Blogs zu diesem Thema gelesen, aber keine von ihnen diskutiert wirklich den Unterschied in der Geschwindigkeit. Also, alle Ideen oder Links werden sehr geschätzt.
Vielen Dank.
Was ist das Tischdesign? Der Schlüssel-Cache wird nicht schnell sein, wenn der verwendete Index nicht den Sipid, den Preis, die Stadt und den Staat abdeckt. Otherwize die Abfrage liest den Index, dann die Tabelle. –
@Thomas Jones-Low Der Index deckt alle 3 Col. Ich habe einige Tests gemacht und es ist kein signifikanter Unterschied, wenn ich 1 oder 3 Farben auswähle. ODER wenn die ausgewählten Spalten indiziert sind oder nicht – silversky
@Thomas Jones-Low Und auch warum die gleiche Abfrage ist es viel, viel .. schneller auf OS-Cache-Fall? (Grundsätzlich sind die gleichen Schritte beteiligt) – silversky