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!