Ich Ausführung der folgenden auf meine INNODB DatenbankAbfrage ohne ORDER BY langsamer?
QUERY OHNE ORDER BY
SELECT SQL_NO_CACHE second_designer
FROM itemrow FORCE INDEX(second_designer)
WHERE category like '%'
and type like '%'
and availability like '%'
GROUP BY second_designer
259 results in 0.0286 seconds.
QUERY MIT ORDER BY DESC
SELECT SQL_NO_CACHE second_designer
FROM itemrow FORCE INDEX(second_designer)
WHERE category like '%'
and type like '%'
and availability like '%'
GROUP BY second_designer
ORDER BY second_designer DESC
259 results in 0.0008 seconds.
INDEX
ADD INDEX `second_designer` (`second_designer ` , `availability`,
`category`, `type`) USING BTREE
ERKLÄREN
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE itemrow index second_designer second_designer 608 NULL 44521 Using where; Using index
Warum ist die Abfrage mit order by-Klausel so viel schneller als die ohne?
läuft Diese Frage ist ziemlich bedeutungslos, der Index, den Sie haben, kann nicht in der WHERE-Klausel in irgendeiner Abfrage verwendet werden. Sie haben die Erklärung nur für eine Abfrage gegeben. – e4c5
Die Erläuterung ist für beide Abfragen identisch. Erklärt das nicht auch, dass der Index 'second_designer' benutzt wird? – Pieter
das ist nur für die Gruppe, wenn Sie die eingerückte EXPLAIN-Ausgabe gepostet haben, die klarer wäre – e4c5