Ich habe eine sehr einfache Tabelle mit zwei Spalten, aber hat 4,5 M Zeilen.Einfache MySQL-Tabelle, die langsame Abfragen ausführt
CREATE TABLE `content_link` (
`category_id` mediumint(8) unsigned NOT NULL,
`content_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`content_id`,`category_id`),
KEY `content_id` (`content_id`,`category_id`)
) ENGINE=MyISAM;
Wenn ich eine einfache Abfrage ausführen wie:
SELECT
*
FROM
content_link
WHERE
category_id = '11';
mysql die CPU spikes und dauert 2-5 Sekunden vor etwa 10 Zeilen zurück. Die Daten verteilen sich sehr gleichmäßig auf die Tabelle und ich greife auf indexierte Felder zu (ich habe auch die Tabelle analysiert/optimiert und ändere nie den Inhalt der Tabelle). Was ist der Grund dafür, dass die Abfrage so lange dauert?
Edit: Es scheint, dass navicat mich anlügt und mein Primärschlüssel nicht wirklich in der richtigen Reihenfolge eingegeben wurde, da es mir den Tisch zeigte.
, was Sie gleichmäßig verteilt bedeuten kann? Ist das Ergebnis korrekt? Haben Sie die I/O profiliert? Gibt es eine Hardware-Latenz? – Richard
Durch die Verteilung gleichmäßig meinte ich, dass ich die IDs nicht verklumpt habe, also sollte ein MySQL BTREE Index keine Probleme damit haben. – Ian