Skip to main content
Documents
Clauses StatementsKeywordsExpressionsFunctionsIndexesPerformance Optimization

MySQL SHOW INDEX Indexes

Indexes in MySQL are used to speed up the retrieval of rows by creating a data structure that allows quick look-ups. The `SHOW INDEX` command provides detailed information about the indexes present in a table, helping in database optimization and analysis.

Usage

Indexes are employed to enhance data retrieval efficiency, especially in large databases. The `SHOW INDEX` statement is utilized to view the structure and details of indexes in a specified table. Note that `SHOW INDEX` is synonymous with `SHOW KEYS`.

SHOW INDEX FROM table_name;

In this syntax, `SHOW INDEX FROM table_name` retrieves information about all indexes associated with `table_name`, including unique constraints and primary keys.

Output Columns

The output of the `SHOW INDEX` command includes several columns that provide detailed information about each index:

  • Table: The name of the table.
  • Non_unique: Whether the index allows duplicate values.
  • Key_name: The name of the index.
  • Seq_in_index: The column sequence number in the index.
  • Column_name: The name of the column.
  • Collation: How the column is sorted in the index.
  • Cardinality: An estimate of the number of unique values in the index.
  • Sub_part: The indexed prefix of a column (if specified).
  • Packed: Information about how the key is packed.
  • Null: Whether the column can contain NULL.
  • Index_type: The indexing method used (e.g., BTREE, FULLTEXT).
  • Comment: Additional information.
  • Index_comment: Comments about the index.

Examples

1. Basic Index Information

SHOW INDEX FROM employees;

This example retrieves all index details from the `employees` table, showing information like index name, column name, and uniqueness.

2. Index Information with Database Specification

SHOW INDEX FROM orders FROM sales_db;

Here, the command fetches index details from the `orders` table within the `sales_db` database, useful for distinguishing between databases.

3. Using LIKE for Specific Index

SHOW INDEX FROM customers LIKE 'idx_%';

This example uses the `LIKE` clause to filter indexes from the `customers` table, returning only those with names starting with `idx_`.

Tips and Best Practices

  • Analyze index usage. Regularly use `SHOW INDEX` to understand index performance and relevance, ensuring they are used effectively.
  • Minimize unnecessary indexes. Too many indexes can slow down write operations, so remove unused or redundant ones.
  • Monitor and document index changes. Keep a log and monitor index modifications to help in database maintenance and troubleshooting.
  • Review index performance with `EXPLAIN`. Use `EXPLAIN` in conjunction with `SHOW INDEX` for comprehensive analysis and optimization of query performance.
  • Use `ANALYZE TABLE`. Regularly run `ANALYZE TABLE` to update the index statistics, ensuring the optimizer has the most current data.
  • Ensure optimal compound index order. Arrange compound indexes in the order of query execution to maximize performance benefits.

SQL Upskilling for Beginners

Gain the SQL skills to interact with and query your data.
Start Learning for Free