sql >> Databasteknik >  >> RDS >> Mysql

MySQL Visa index i databasen

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!

  1. Hur man optimerar användningen av ELLER-satsen när den används med parametrar (SQL Server 2008)

  2. Hur ClusterControl konfigurerar virtuell IP och vad du kan förvänta dig under failover

  3. Kopiera data från Salesforce till SQL Server med Spectral Core

  4. RMAN Lista backup-kommandon