Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL zeigt Indizes in der Datenbank an

Häufig müssen Sie möglicherweise alle Indizes in MySQL auflisten oder alle Indizes in MySQL anzeigen. So zeigen Sie Indizes in MySQL mit dem Befehl SHOW INDEX in MySQL an.

MySQL-Indizes in Datenbank anzeigen

Hier sind die Schritte zum Anzeigen von Indizes in MySQL. Wir werden die SHOW INDEXES-Anweisung verwenden, um alle Indizes in der Datenbank aufzulisten.

Hier ist die Syntax für SHOW INDEXES

SHOW INDEXES FROM table_name;

ODER

SHOW INDEXES FROM db_name.table_name;

ODER

SHOW INDEXES FROM table_name in db_name;

ODER

SHOW KEYS FROM table_name in db_name;

In der obigen Abfrage müssen Sie den Tabellennamen und den Datenbanknamen angeben, für die Sie Indizes anzeigen möchten.

Bonuslektüre:MySQL-Datenbanken vergleichen

MySQL-Indizes für Tabelle anzeigen

Hier ist ein Beispiel, um alle Indizes für eine Tabelle (z. B. Beispiel) in MySQL aufzulisten. Ersetzen Sie es durch Ihren Tabellennamen.

mysql> show indexes from cities in sample;
+--------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table  | Non_unique | Key_name   | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+--------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| cities |          0 | PRIMARY    |            1 | city_id     | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| cities |          1 | country_id |            1 | country_id  | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
+--------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

Die Ausgabe zeigt viele Attribute jedes Index an, darunter Kardinalität, Schlüsselname, Spaltenname usw.

Bonus-Lesetext:MySQL Alter Stored Procedure

MySQL-Indizes für alle Tabellen in der Datenbank anzeigen

Hier ist die SQL-Abfrage, um alle Indizes in einem bestimmten MySQL-Datenbankschema (z. B. Beispiel) aufzulisten, das fett erwähnt wird

mysql> SELECT
         DISTINCT TABLE_NAME,
         INDEX_NAME
      FROM
          INFORMATION_SCHEMA.STATISTICS
      WHERE
          TABLE_SCHEMA = 'sample';
+---------------+---------------+
| TABLE_NAME    | INDEX_NAME    |
+---------------+---------------+
| categories    | PRIMARY       |
| cities        | PRIMARY       |
| cities        | country_id    |
| countries     | PRIMARY       |
| old_orders    | u_orders      |
| orders        | PRIMARY       |
| orders_list   | PRIMARY       |
| recent_orders | order_id      |
| recent_orders | unique_amount |
| x_orders      | PRIMARY       |
+---------------+---------------+

Bonus-Lesetext:MySQL listet alle Prozeduren auf

MySQL SHOW INDEX-Größe

Die Indexlänge wird in der Tabelle information_schema.tables gespeichert. Hier ist die SQL-Abfrage, um die Indexgröße in MySQL für eine bestimmte Datenbank „Beispiel“ anzuzeigen. Ersetzen Sie es durch Ihren Datenbanknamen.

mysql> SELECT table_name,
           concat( round( data_length / ( 1024 *1024 ) , 2 ) , 'Mb' ) AS 'data_length_mb',
           concat( round( index_length / ( 1024 *1024 ) , 2 ) , 'Mb' ) AS 'index_length_mb',
           concat( round( round( data_length + index_length ) / ( 1024 *1024 ) , 2 ) , 'Mb' )  AS 'total_size_mb'
       FROM information_schema.tables
       WHERE table_schema ='sample'
       ORDER BY data_length desc;	
+----------------+----------------+-----------------+---------------+
| table_name     | data_length_mb | index_length_mb | total_size_mb |
+----------------+----------------+-----------------+---------------+
| meeting        | 0.02Mb         | 0.00Mb          | 0.02Mb        |
| sample_data    | 0.02Mb         | 0.00Mb          | 0.02Mb        |
| ...            | ...            | ...             | ...           |
+----------------+----------------+-----------------+---------------+

Bonus-Leseartikel:MySQL-Root-Passwort zurücksetzen

Alle Indizes aller Datenbankschemata auflisten

Hier ist die SQL-Abfrage, um Indizes aller Tabellen in einem reinen MySQL-Datenbankschema anzuzeigen, auf das Sie Zugriff haben.

SELECT
    DISTINCT TABLE_NAME,
    INDEX_NAME
FROM
    INFORMATION_SCHEMA.STATISTICS;	

Hoffentlich können Sie nun ganz einfach Indizes in MySQL auflisten.

Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!