Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL verwendet keinen Index für ORDER BY

Da die gesamte Tabelle geladen werden muss, um die Abfrage zu beantworten, und das Sortieren von 4 Elementen billig ist, vermeidet der Abfrageoptimierer möglicherweise nur, den Index zu berühren. Tritt es auch bei größeren Tabellen auf?

Beachten Sie, dass eine varchar(3000)-Spalte kein abdeckender Index sein kann, da MySQL nicht mehr als die ersten etwa 768 Bytes eines varchar in einen Index aufnehmen wird.

Wenn Sie möchten, dass die Abfrage nur den Index liest, muss der Index jede Spalte haben, die Sie SELECT haben ing für darin. Auf innodb sollte das für Ihre zweispaltige Tabelle funktionieren, sobald Sie textcol klein genug gemacht haben; Auf MyISAM müssen Sie die Primärschlüsselspalte selbst einfügen, wie CREATE INDEX textcolindex ON test (textcol,id);