[RAILS] Optimieren Sie Ihre Anfrage mit EXPLAIN

Ein Hinweis bei der Untersuchung, wie mit EXPLAIN indiziert werden kann, um die Leistung zu verbessern. Da ich Rails benutze, schreibe ich unter dieser Annahme.

EXPLAIN-Verfahren

Sehen Sie sich zunächst das Rails-Protokoll an, um festzustellen, welche Abfragen ausgegeben werden.

Hoge Exists (0.7ms)  SELECT  1 AS one FROM `hoges` WHERE `hoge`...

Stellen Sie dann eine Verbindung zu MySQL her. Führen Sie nach Auswahl der Datenbank die obige Abfrage mit EXPLAIN aus.

mysql> EXPLAIN SELECT  1 AS one FROM `hoges` WHERE `hoge`...;
+----+-------------+-------------+------+-----------------------------------------------------------------------------------------------+---------------------------+---------+-------+------+------------------------------------+
| id | select_type | table       | type | possible_key         | key                 | key_len | ref   | rows | Extra                              |
+----+-------------+-------------+------+-----------------------------------------------------------------------------------------------+---------------------------+---------+-------+------+------------------------------------+
|  1 | SIMPLE      | hoges       | ref  | index_hoges_on_fuga  | index_hoges_on_fuga | 1023    | const |    1 | Using index condition; Using where |
+----+-------------+-------------+------+-----------------------------------------------------------------------------------------------+---------------------------+---------+-------+------+------------------------------------+
1 row in set (0.00 sec)

Überprüfen Sie auf diese Weise den Ausführungsplan der Abfrage und wählen Sie die Einfügemethode aus, die bessere Ergebnisse liefert. Wenn mehrere Kandidaten vorhanden sind, reicht es aus, zu überprüfen, ob der Index nicht eingefügt, eingefügt (Vorschlag 1) und eingefügt (Vorschlag 2) ist.

Wie man EXPLAIN liest

Ich möchte vor allem Schlüssel, key_len, Zeilen und Extra überprüfen.

key

Ein Schlüssel, der aus möglichen Schlüsseln ausgewählt wurde (Schlüssel, die als Kandidaten aufgeführt sind).

key_len

Schlüssellänge. Der kürzere ist schneller.

rows

Ungefähre Anzahl der geschätzten Linien.

Extra

Wenn Index verwendet wird, bedeutet dies, dass die Abfrage mithilfe des Index gelöst werden kann. Dies ist eine Anleitung, wenn Sie den Index beschleunigen möchten. In der obigen Tabelle heißt es übrigens "Indexbedingung verwenden", was darauf hinweist, dass die Abfrage einige der Indexwerte verwenden kann.

Recommended Posts

Optimieren Sie Ihre Anfrage mit EXPLAIN
Reinigen Sie Ihren Code mit Butter Knife
Erstellen Sie Ihre eigene Solr-Funktionsabfrage
Teile es mit deiner Instagram-Geschichte!
Dekorieren Sie Ihre Sinatra-App mit CSS