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

MySQL-Index wird ignoriert

FORCE ist ein bisschen irreführend. Hier ist, was die MySQL-Dokumentation sagt (Hervorhebung von mir):

Sie können auch FORCE INDEX verwenden, das sich wie USE INDEX (index_list) verhält, jedoch mit dem Zusatz, dass ein Tabellenscan als sehr teuer angesehen wird. Mit anderen Worten, ein Tabellenscan wird nur verwendet, wenn es keine Möglichkeit gibt, einen der angegebenen Indizes zum Suchen von Zeilen zu verwenden in der Tabelle.

Da Sie eigentlich keine Zeilen "finden" (Sie wählen sie alle aus), ist ein Tabellenscan immer am schnellsten sein, und der Optimierer ist schlau genug, um das zu wissen, ungeachtet dessen, was Sie ihm sagen.

Voraussichtliche Ankunftszeit:

Versuchen Sie, dem Primärschlüssel einmal ein ORDER BY hinzuzufügen, und ich wette, es wird den Index verwenden.