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

Wenn beim Ausführen von EXPLAIN der Feldwert für key nicht null, aber Extra leer ist, wird der Schlüssel verwendet?

Using index bedeutet nicht, was Sie denken, dass es bedeutet. Wenn es im Extra vorhanden ist -Spalte zeigt dies an, dass der Optimierer nicht wirklich die gesamten Zeilen liest, sondern (ausschließlich) den Index verwendet, um Spalteninformationen zu finden.

Der Schlüssel könnte noch für andere Dinge verwendet werden, zum Beispiel um Suchen durchzuführen, wenn Sie ein WHERE haben Klausel usw. In Ihrem speziellen Szenario zum Beispiel das Verschwinden des Using temporary; bedeutet tatsächlich, dass Ihr Index verwendet wird, da MySQL den Inhalt Ihrer Tabelle nicht mehr in einer neuen temporären Tabelle neu anordnen muss, um GROUP BY auszuführen .