Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL mostra gli indici nel database

Molte volte potrebbe essere necessario elencare tutti gli indici in MySQL o visualizzare tutti gli indici in MySQL. Ecco come mostrare gli indici in MySQL usando il comando SHOW INDEX in MySQL.

MySQL mostra gli indici nel database

Ecco i passaggi per mostrare gli indici in MySQL. Useremo l'istruzione SHOW INDEXES per elencare tutti gli indici nel database.

Ecco la sintassi di SHOW INDEXES

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;

Nella query precedente, devi specificare il nome della tabella e il nome del database per cui vuoi mostrare gli indici.

Bonus Lettura:MySQL confronta i database

MySQL Mostra gli indici per la tabella

Ecco un esempio per elencare tutti gli indici per la tabella (ad es. campione) in MySQL. Sostituiscilo con il nome della tabella.

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

L'output mostra molti attributi di ciascun indice tra cui cardinalità, nome chiave, nome colonna, ecc.

Bonus Lettura:MySQL Alter Stored Procedure

MySQL mostra gli indici per tutte le tabelle nel database

Ecco la query SQL per elencare tutti gli indici in uno specifico schema di database MySQL (ad es. campione) menzionato in grassetto

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 Lettura:MySQL elenca tutte le procedure

Dimensione INDICE MySQL SHOW

La lunghezza dell'indice è memorizzata nella tabella information_schema.tables. Ecco la query SQL per mostrare la dimensione dell'indice in MySQL per un "campione" di database specifico. Sostituiscilo con il nome del tuo database.

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 Lettura:MySQL Reimposta la password di root

Elenca tutti gli indici di tutti gli schemi di database

Ecco la query SQL per mostrare gli indici di tutte le tabelle in uno schema di database MySQL a cui hai accesso.

SELECT
    DISTINCT TABLE_NAME,
    INDEX_NAME
FROM
    INFORMATION_SCHEMA.STATISTICS;	

Si spera che ora sia possibile elencare facilmente gli indici in MySQL.

Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!