Ich habe einen ziemlich einfachen Prozess ausgeführt, der RSS-Feeds periodisch aufnimmt und Artikel in einer MySQL-Datenbank aktualisiert.Einfache MySQL-Abfrage dauert 2 bis 3 Sekunden?
Die Artikeltabelle ist jetzt in etwa 130k Zeilen gefüllt. Für jeden gefundenen Artikel prüft der Prozessor, ob der Artikel bereits existiert. Diese Abfragen dauern fast immer 300 Millisekunden und etwa alle 10 oder 20 Versuche dauern mehr als 2 Sekunden.
SELECT id FROM `articles` WHERE (guid = 'http://example.com/feed.rss') LIMIT 1;
# Query_time: 2.754567 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0
Ich habe einen Index für die Spalte guid aber wann immer ein neuer Artikel angetroffen wird, wird es auf die Artikel-Tabelle hinzugefügt - (? Rechts), um die Abfrage-Cache ungültig zu machen.
Einige der anderen Felder im Protokoll der langsamen Abfrage protokollieren mehr als 120 Zeilen.
Natürlich benötigen diese Abfragen auf meiner Entwicklungsmaschine etwa 0,2 Millisekunden.
Der Server ist ein virtueller Host von Engine Yard Solo (EC2) mit 1,7 GB Speicher und welcher CPU EC2 in diesen Tagen auch ausgeliefert wird.
Jeder Rat würde sehr geschätzt werden.
aktualisieren
Da es das Problem zwischen dem Stuhl war sich herausstellt und der Tastatur.
Ich hatte einen Index für 'ID', aber war auf 'GUID' Abfrage.
Das Hinzufügen eines Indexes zu 'guid' hat die Abfragezeit auf jeweils 0,2 ms verkürzt.
Danke für alle hilfreichen Tipps an alle!
1,7 'MB' der Speicher, die ziemlich klein ist. Mein 286 Computer hatte 1 MB tho. – pjp
Ja, bitte bearbeiten und korrigieren Sie diesen Betrag, weil ich sehe und Ding "keine Möglichkeit" –
Fixed die Erinnerung Hinweis - es hätte GB sein sollen. Vielen Dank! –