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!