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.
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.
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.