Indizes für Tabelle oder Datenbank in MySQL anzeigen

Mehvish Ashiq 15 Februar 2024
  1. Was ist Index in MySQL
  2. Bedeutung von Indizes in MySQL
  3. Verwenden Sie SHOW INDEXES, um alle Indizes einer Tabelle oder Datenbank in MySQL aufzulisten
  4. Verwenden Sie SELECT DISTINCT, um alle Indizes für alle Tabellen aus einem Schema (Datenbank) in MySQL aufzulisten
  5. Verwenden Sie die Tabelle STATISTICS, um alle Indizes für alle Tabellen aus allen Schemas (Datenbanken) in MySQL aufzulisten
Indizes für Tabelle oder Datenbank in MySQL anzeigen

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.

Indizes für eine Tabelle oder Datenbank in MySQL anzeigen - Indizes-Demonstration

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:

Indizes für eine Tabelle oder eine Datenbank in MySQL anzeigen - Durchsuchen einer nicht indizierten Tabelle

Durchsuchen einer indizierten Tabelle:

Indizes für eine Tabelle oder eine Datenbank in MySQL anzeigen - indizierte Tabelle durchsuchen

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;
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - MySQL Index