Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL mostra índices no banco de dados


Muitas vezes você pode precisar listar todos os índices no MySQL ou exibir todos os índices no MySQL. Veja como mostrar índices no MySQL usando o comando SHOW INDEX no MySQL.


MySQL mostra índices no banco de dados


Aqui estão as etapas para mostrar índices no MySQL. Usaremos a instrução SHOW INDEXES para listar todos os índices no banco de dados.

Aqui está a sintaxe para 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;

Na consulta acima, você precisa especificar o nome da tabela e o nome do banco de dados para o qual deseja mostrar os índices.



Bônus de leitura:MySQL Comparar Bancos de Dados


Mostrar índices MySQL para tabela


Aqui está um exemplo para listar todos os índices da tabela (por exemplo, amostra) no MySQL. Substitua-o pelo nome da sua tabela.
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      |         |               |
+--------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

A saída exibe muitos atributos de cada índice, incluindo cardinalidade, nome da chave, nome da coluna etc.



Bônus de leitura:MySQL Alter Stored Procedure


MySQL mostra índices para todas as tabelas no banco de dados


Aqui está a consulta SQL para listar todos os índices em um esquema de banco de dados MySQL específico (por exemplo, amostra) mencionado em negrito
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       |
+---------------+---------------+



Bônus de leitura:MySQL lista todos os procedimentos


MySQL SHOW INDEX Size


O comprimento do índice é armazenado na tabela information_schema.tables. Aqui está a consulta SQL para mostrar o tamanho do índice no MySQL para uma 'amostra' específica do banco de dados. Substitua-o pelo nome do banco de dados.
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        |
| ...            | ...            | ...             | ...           |
+----------------+----------------+-----------------+---------------+



Bônus de leitura:MySQL Redefinir Senha Root


Lista todos os índices de todos os esquemas de banco de dados


Aqui está a consulta SQL para mostrar os índices de todas as tabelas em um esquema de banco de dados MySQL ao qual você tem acesso.
SELECT
    DISTINCT TABLE_NAME,
    INDEX_NAME
FROM
    INFORMATION_SCHEMA.STATISTICS;	



Espero que agora você possa listar índices facilmente no MySQL.

O Ubiq facilita a visualização de dados em minutos e o monitoramento em painéis em tempo real. Experimente hoje!