wenn ich möchte wissen, ob mysql die Indizierung verwendet ich diese SQL verwenden kann, um zu überprüfen, wie viele Zeilen für die SQL gescannt durch die Zeilen Spalte Überprüfung zurückgegeben:ist eine Möglichkeit, den Namen der Indizierung zu kennen, die mysql verwendet, wenn ich eine Abfrage einreiche?
EXPLAIN SELECT * FROM table_name1 WHERE `length` = 71;
aber ich frage mich, ob überhaupt Zeigen Sie mir direkt, welche Indizierung mysql für den Fortschritt verwendet. Ich denke, es wird besser sein System sagen Sie mir den Namen der Indizierung.
Nehmen wir ein Beispiel:
CREATE TABLE `tb1` (
`id` int(3) unsigned NOT NULL AUTO_INCREMENT,
`num` int(11) NOT NULL,
`length` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `length` (`length`) USING BTREE,
KEY `num_length` (`num`,`length`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
Die Abfrage erstellen eine Tabelle namens „tb1“ und einen Index für „Länge“ und einem Index für „Länge“ und „num“ erstellen;
Ich möchte wissen, ob der "Länge" Index richtig funktioniert.
das Ergebnis scheint nur zeigen 1666 Zeilen gescannt aber didn, t sagen mir, welche Index mysql für die Abfrage verwendet.
was ich wissen möchte, ist, wie man den Indexnamen, den mysql verwendet, wenn eine Abfrage ausgeführt wird.
Das 'EXPLAIN' sagt Ihnen, welche Indizes es verwendet. Das ist der ** einzige ** Weg. Es ist unklar, was Sie erreichen möchten und welche Art von Optimierung Sie anstreben. Erweitern Sie Ihre Frage und erklären Sie das ** eigentliche Problem **, das Sie haben. – Mjh
@mjh danke. Ich habe die Frage erweitert und ein Beispiel hinzugefügt. Vielleicht scheint es jetzt klarer zu sein. – Tim