Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL pokazuje indeksy w bazie danych

Wiele razy może być konieczne wyświetlenie listy wszystkich indeksów w MySQL lub wyświetlenie wszystkich indeksów w MySQL. Oto jak wyświetlić indeksy w MySQL za pomocą polecenia SHOW INDEX w MySQL.

MySQL pokazuje indeksy w bazie danych

Oto kroki, aby wyświetlić indeksy w MySQL. Użyjemy instrukcji SHOW INDEXES, aby wyświetlić listę wszystkich indeksów w bazie danych.

Oto składnia dla POKAŻ INDEKSY

SHOW INDEXES FROM table_name;

LUB

SHOW INDEXES FROM db_name.table_name;

LUB

SHOW INDEXES FROM table_name in db_name;

LUB

SHOW KEYS FROM table_name in db_name;

W powyższym zapytaniu musisz określić nazwę tabeli i nazwę bazy danych, dla której chcesz wyświetlić indeksy.

Przeczytaj bonus:MySQL Porównaj bazy danych

MySQL Pokaż indeksy dla tabeli

Oto przykład, aby wyświetlić listę wszystkich indeksów dla tabeli (np. Przykład) w MySQL. Zastąp ją nazwą swojej tabeli.

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      |         |               |
+--------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

Dane wyjściowe wyświetlają wiele atrybutów każdego indeksu, w tym liczność, nazwę klucza, nazwę kolumny itp.

Przeczytaj bonus:Procedura składowana MySQL Alter

MySQL pokazuje indeksy dla wszystkich tabel w bazie danych

Oto zapytanie SQL, które wyświetla listę wszystkich indeksów w określonym schemacie bazy danych MySQL (np. przykładowym) wymienionym pogrubieniem

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       |
+---------------+---------------+

Przeczytaj dodatkowe:Lista wszystkich procedur MySQL

Rozmiar INDEKSU POKAŻ MySQL

Długość indeksu jest przechowywana w tabeli information_schema.tables. Oto zapytanie SQL, aby pokazać rozmiar indeksu w MySQL dla określonej „próbki” bazy danych. Zastąp ją nazwą swojej bazy danych.

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        |
| ...            | ...            | ...             | ...           |
+----------------+----------------+-----------------+---------------+

Przeczytaj bonus:hasło root resetowania MySQL

Wymień wszystkie indeksy wszystkich schematów bazy danych

Oto zapytanie SQL, które pokazuje indeksy wszystkich tabel w schemacie bazy danych MySQL, do którego masz dostęp.

SELECT
    DISTINCT TABLE_NAME,
    INDEX_NAME
FROM
    INFORMATION_SCHEMA.STATISTICS;	

Mamy nadzieję, że teraz możesz łatwo wyświetlać indeksy w MySQL.

Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znajdź rekordy z jednej tabeli, które nie istnieją w innej

  2. Ustawić NOW() jako wartość domyślną dla typu danych datetime?

  3. JSON_EXTRACT() – Zwróć dane z dokumentu JSON w MySQL

  4. Jak dołączyć do trzech stołów według wymownego modelu laravel

  5. Przesyłanie obrazów w CKEditor bez użycia wtyczki