Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL Afficher les index dans la base de données

Plusieurs fois, vous devrez peut-être répertorier tous les index dans MySQL ou afficher tous les index dans MySQL. Voici comment afficher les index dans MySQL à l'aide de la commande SHOW INDEX dans MySQL.

MySQL Afficher les index dans la base de données

Voici les étapes pour afficher les index dans MySQL. Nous utiliserons l'instruction SHOW INDEXES pour répertorier tous les index de la base de données.

Voici la syntaxe pour SHOW INDEXES

SHOW INDEXES FROM table_name;

OU

SHOW INDEXES FROM db_name.table_name;

OU

SHOW INDEXES FROM table_name in db_name;

OU

SHOW KEYS FROM table_name in db_name;

Dans la requête ci-dessus, vous devez spécifier le nom de la table et le nom de la base de données pour lesquels vous souhaitez afficher les index.

Lecture bonus :MySQL compare les bases de données

MySQL Afficher les index pour la table

Voici un exemple pour répertorier tous les index de table (par exemple, un exemple) dans MySQL. Remplacez-le par le nom de votre table.

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

La sortie affiche de nombreux attributs de chaque index, notamment la cardinalité, le nom de la clé, le nom de la colonne, etc.

Lecture bonus :MySQL Alter Stored Procedure

MySQL Afficher les index pour toutes les tables de la base de données

Voici la requête SQL pour répertorier tous les index dans un schéma de base de données MySQL spécifique (par exemple, un exemple) mentionné en gras

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

Lecture bonus :Liste de toutes les procédures MySQL

Taille MySQL AFFICHER L'INDEX

La longueur de l'index est stockée dans la table information_schema.tables. Voici la requête SQL pour afficher la taille de l'index dans MySQL pour un "échantillon" de base de données spécifique. Remplacez-le par le nom de votre base de données.

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

Lecture bonus :Réinitialiser le mot de passe root MySQL

Répertorier tous les index de tous les schémas de base de données

Voici la requête SQL pour afficher les index de toutes les tables dans un schéma de base de données MySQL auquel vous avez accès.

SELECT
    DISTINCT TABLE_NAME,
    INDEX_NAME
FROM
    INFORMATION_SCHEMA.STATISTICS;	

Heureusement, vous pouvez maintenant facilement répertorier les index dans MySQL.

Ubiq facilite la visualisation des données en quelques minutes et la surveillance dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !