Många gånger kan du behöva lista alla index i MySQL eller visa alla index i MySQL. Så här visar du index i MySQL med kommandot SHOW INDEX i MySQL.
MySQL Visa index i databasen
Här är stegen för att visa index i MySQL. Vi kommer att använda SHOW INDEXES-satsen för att lista alla index i databasen.
Här är syntaxen för VISA INDEX
SHOW INDEXES FROM table_name;
ELLER
SHOW INDEXES FROM db_name.table_name;
ELLER
SHOW INDEXES FROM table_name in db_name;
ELLER
SHOW KEYS FROM table_name in db_name;
I ovanstående fråga måste du ange tabellnamnet och databasnamnet som du vill visa index för.
Bonus Läs:MySQL Jämför databaser
MySQL Visa index för tabell
Här är ett exempel för att lista alla index för tabell (t.ex. exempel) i MySQL. Ersätt det med ditt tabellnamn.
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 | | | +--------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
Utdatan visar många attribut för varje index inklusive kardinalitet, nyckelnamn, kolumnnamn, etc.
Bonusläsning:MySQL Alter Stored Procedure
MySQL Visa index för alla tabeller i databasen
Här är SQL-frågan för att lista alla index i ett specifikt MySQL-databasschema (t.ex. exempel) som nämns i fetstil
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 Läs:MySQL lista alla procedurer
MySQL SHOW INDEX Storlek
Indexlängden lagras i tabellen information_schema.tables. Här är SQL-frågan för att visa indexstorlek i MySQL för ett specifikt databas-"prov". Ersätt det med ditt databasnamn.
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 Läs:MySQL Återställ rotlösenord
Lista alla index för alla databasscheman
Här är SQL-frågan för att visa index för alla tabeller i ett MySQL-databasschema som du har tillgång till.
SELECT DISTINCT TABLE_NAME, INDEX_NAME FROM INFORMATION_SCHEMA.STATISTICS;
Förhoppningsvis kan du nu enkelt lista index i MySQL.
Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!