Indizes für Tabelle oder Datenbank in MySQL anzeigen
- Was ist Index in MySQL
- Bedeutung von Indizes in MySQL
-
Verwenden Sie
SHOW INDEXES
, um alle Indizes einer Tabelle oder Datenbank in MySQL aufzulisten -
Verwenden Sie
SELECT DISTINCT
, um alle Indizes für alle Tabellen aus einem Schema (Datenbank) in MySQL aufzulisten -
Verwenden Sie die Tabelle
STATISTICS
, um alle Indizes für alle Tabellen aus allen Schemas (Datenbanken) in MySQL aufzulisten
Der heutige Artikel behandelt das Anzeigen von Indizes für eine Tabelle oder eine Datenbank in MySQL. Wir werden lernen, wie man Indizes aus einer oder mehreren Tabellen innerhalb einer Datenbank oder aller Datenbanken erhält.
Wir werden die Befehle SHOW INDEXES
, SHOW EXTENDED INDEX
, SELECT DISTINCT
und die Tabelle STATISTICS
verwenden, um die Indizes zu erhalten.
Was ist Index in MySQL
Eine Datenbankstruktur, höchstwahrscheinlich ein B-Baum, den wir verwenden können, um die Leistung der Datenbankaktivität zu verbessern, wird als Index bezeichnet. Eine Tabelle in einer Datenbank kann einen oder mehrere Indizes haben, die dieser bestimmten Tabelle zugeordnet sind.
Indizes rufen die erforderlichen Daten aus mehreren Spalten ab und steigern so die Effizienz der MySQL-Abfragen. Die angegebene MySQL-Abfrage untersucht jede Zeile (einen Datensatz) einer Tabelle, um die Zieldaten zu erhalten, wenn wir die Indizierung in MySQL auslassen.
Immer wenn wir eine Tabelle mit einem eindeutigen oder Primärschlüssel erstellen, wird der spezielle Index automatisch mithilfe eines Feldausdrucks namens PRIMARY
erstellt und als Clustered Index bezeichnet.
Alle Indizes mit Ausnahme von PRIMARY
sind Sekundärindizes; wir können sie Non-Cluster-Indizes nennen.
Zum Beispiel haben wir eine Tabelle Studenten
und ein Index wird auf der Spalte ID
erstellt. Hier enthält der Index eine sortierte Liste der Studenten-ID-Werte in einer Tabelle, in der jeder Wert der Liste von einem Verweis auf den Datensatz in der entsprechenden Tabelle (hier Studenten
) mit diesem Wert begleitet wird.
Das Folgende ist eine Demonstration dessen, was die Indizes sind.
Bedeutung von Indizes in MySQL
Sehen wir uns die folgenden zwei visuellen Darstellungen an, um zu beobachten, wie die indizierten und nicht indizierten Tabellen mit der folgenden Abfrage durchsucht werden.
SELECT * FROM students WHERE Gender = 'Male'
Durchsuchen einer nicht indizierten Tabelle:
Durchsuchen einer indizierten Tabelle:
Sehen Sie, die Indizes helfen uns, nur die Zieldaten abzurufen, anstatt durch alle Zeilen in einer Tabelle zu wandern.
Verwenden Sie SHOW INDEXES
, um alle Indizes einer Tabelle oder Datenbank in MySQL aufzulisten
Wir können die folgenden Abfragen verwenden, um eine Liste von Indizes aus einer bestimmten Tabelle oder MySQL-Datenbank zu erhalten.
Indizes aus einer Tabelle anzeigen:
SHOW INDEXES FROM tableName;
Die obige Abfrage listet alle Indizes aus der angegebenen Tabelle in der aktuellen Datenbank auf, die Sie über use databaseName;
verwenden werden. Anfrage.
Wenn Sie keine Datenbank verwenden, können Sie mit der folgenden Abfrage alle Indizes einer Tabelle abrufen.
SHOW INDEX FROM tableName FROM databaseName;
Alternativ können wir es auf folgende Weise verwenden.
SHOW INDEXES FROM tableName IN databaseName;
Denken Sie daran, dass KEYS
und INDEX
Synonyme von INDEXES
sind; ebenso ist das IN
ein Synonym für FROM
. Daher können wir diese Synonyme in den INDEXES ANZEIGEN
verwenden.
# The queries below can be used alternatively,
# and produce the same results.
SHOW INDEXES FROM tableName IN databaseName;
SHOW INDEX IN tableName FROM databaseName;
Oder
# The queries given below can be used alternatively,
# and produce the same results.
SHOW INDEXES FROM tableName IN databaseName;
SHOW KEYS FROM tableName IN databaseName;
Wir haben verschiedene Methoden kennengelernt, um eine Liste von Indizes aus einer Tabelle zu erhalten, die wir als Datenbankentwickler erstellt haben. Wir können die folgende Abfrage verwenden, um alle Indizes zu erhalten, die von einem Datenbankentwickler und der Datenbank selbst erstellt wurden.
SHOW EXTENDED INDEX from databaseName.tableName;
Verwenden Sie SELECT DISTINCT
, um alle Indizes für alle Tabellen aus einem Schema (Datenbank) in MySQL aufzulisten
Wir können die folgende Abfrage verwenden, um eine Liste aller Indizes für alle Tabellen aus einer bestimmten Datenbank zu erhalten. Wir können die Tabelle STATISTICS
in INFORMATION_SCHEMA
verwenden.
Alle Indizes für alle Tabellen innerhalb eines bestimmten Schemas auflisten:
# In the following query, you don't have to change anything except
# the value of `TABLE_SCHEMA` to get the table name accompanied
# with all indexes in that table.
SELECT DISTINCT
TABLE_NAME,
INDEX_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'your_schema_name';
Verwenden Sie die Tabelle STATISTICS
, um alle Indizes für alle Tabellen aus allen Schemas (Datenbanken) in MySQL aufzulisten
Wir können die folgende Abfrage verwenden, um auf alle Indizes für alle Tabellen eines Schemas (auch Datenbanken genannt) zuzugreifen.
USE INFORMATION_SCHEMA;
SELECT * FROM STATISTICS;