Mange gange skal du muligvis liste alle indekser i MySQL eller vise alle indekser i MySQL. Sådan viser du indekser i MySQL ved hjælp af kommandoen SHOW INDEX i MySQL.
MySQL Vis indekser i databasen
Her er trinene til at vise indekser i MySQL. Vi vil bruge SHOW INDEXES-sætningen til at liste alle indekser i databasen.
Her er syntaksen for VIS INDEKSER
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 ovenstående forespørgsel skal du angive tabelnavnet og databasenavnet, som du vil vise indekser for.
Bonus Læs:MySQL Sammenlign databaser
MySQL Vis indekser for tabel
Her er et eksempel på en liste over alle indekser for tabel (f.eks. prøve) i MySQL. Erstat det med dit tabelnavn.
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 | | | +--------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
Outputtet viser mange attributter for hvert indeks, inklusive kardinalitet, nøglenavn, kolonnenavn osv.
Bonus Læs:MySQL Alter Stored Procedure
MySQL Vis indekser for alle tabeller i databasen
Her er SQL-forespørgslen til at vise alle indekser i et specifikt MySQL-databaseskema (f.eks. eksempel) nævnt med fed skrift
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 | +---------------+---------------+
Bonuslæst:MySQL-liste over alle procedurer
MySQL SHOW INDEX Størrelse
Indekslængde er gemt i information_schema.tables-tabellen. Her er SQL-forespørgslen til at vise indeksstørrelse i MySQL for en specifik database-'prøve'. Erstat det med dit databasenavn.
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 Nulstil root-adgangskode
List alle indekser af alle databaseskemaer
Her er SQL-forespørgslen til at vise indekser af alle tabeller i et MySQL-databaseskema, som du har adgang til.
SELECT DISTINCT TABLE_NAME, INDEX_NAME FROM INFORMATION_SCHEMA.STATISTICS;
Forhåbentlig kan du nu nemt liste indekser i MySQL.
Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!