sql >> Base de Datos >  >> RDS >> Mysql

MySQL Mostrar índices en la base de datos

Muchas veces puede necesitar listar todos los índices en MySQL o mostrar todos los índices en MySQL. Aquí se explica cómo mostrar índices en MySQL usando el comando MOSTRAR ÍNDICE en MySQL.

MySQL Mostrar índices en la base de datos

Estos son los pasos para mostrar índices en MySQL. Usaremos la declaración SHOW INDEXES para listar todos los índices en la base de datos.

Aquí está la sintaxis para MOSTRAR ÍNDICES

SHOW INDEXES FROM table_name;

O

SHOW INDEXES FROM db_name.table_name;

O

SHOW INDEXES FROM table_name in db_name;

O

SHOW KEYS FROM table_name in db_name;

En la consulta anterior, debe especificar el nombre de la tabla y el nombre de la base de datos para los que desea mostrar índices.

Lectura adicional:Comparar bases de datos MySQL

MySQL Mostrar índices para la tabla

Aquí hay un ejemplo para enumerar todos los índices de la tabla (por ejemplo, muestra) en MySQL. Reemplácelo con el nombre de su tabla.

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 salida muestra muchos atributos de cada índice, incluida la cardinalidad, el nombre de la clave, el nombre de la columna, etc.

Lectura adicional:MySQL Alterar procedimiento almacenado

MySQL Mostrar índices para todas las tablas en la base de datos

Aquí está la consulta SQL para enumerar todos los índices en un esquema de base de datos MySQL específico (por ejemplo, muestra) mencionado en negrita

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

Lectura adicional:lista de todos los procedimientos de MySQL

MySQL MOSTRAR ÍNDICE Tamaño

La longitud del índice se almacena en la tabla information_schema.tables. Aquí está la consulta SQL para mostrar el tamaño del índice en MySQL para una "muestra" de base de datos específica. Reemplácelo con el nombre de su base de datos.

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

Lectura adicional:MySQL Restablecer contraseña raíz

Lista de todos los índices de todos los esquemas de base de datos

Aquí está la consulta SQL para mostrar los índices de todas las tablas en un esquema de base de datos MySQL al que tiene acceso.

SELECT
    DISTINCT TABLE_NAME,
    INDEX_NAME
FROM
    INFORMATION_SCHEMA.STATISTICS;	

Con suerte, ahora puede enumerar índices fácilmente en MySQL.

Ubiq facilita la visualización de datos en minutos y la supervisión en paneles en tiempo real. ¡Pruébalo hoy!