SQL SHOW INDEXES

Introduction

In this chapter, we will focus on how to display indexes in a SQL database. Knowing how to view indexes on a table can help you understand the existing indexing strategy and make decisions about adding or removing indexes. This chapter will cover the syntax and provide examples for showing indexes in different database systems.

What is SHOW INDEXES?

The SHOW INDEXES command (or its equivalent) is used to display information about the indexes on a table. This information typically includes the index name, the columns involved in the index, and other relevant details.

Syntax for SHOW INDEXES

MySQL

SHOW INDEXES FROM table_name;

SQL Server

EXEC sp_helpindex 'table_name';

PostgreSQL

SELECT * FROM pg_indexes WHERE tablename = 'table_name';

Step-by-Step Example

Sample Table and Indexes

First, let's create a sample table named employees and add some indexes to it.

CREATE TABLE employees (
    id INT PRIMARY KEY AUTO_INCREMENT,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    email VARCHAR(100),
    department_id INT,
    salary DECIMAL(10, 2)
);

Inserting Sample Data

INSERT INTO employees (first_name, last_name, email, department_id, salary)
VALUES
('Ramesh', 'Kumar', 'ramesh.kumar@example.com', 1, 50000),
('Sita', 'Patel', 'sita.patel@example.com', 2, 60000),
('Arjun', 'Singh', 'arjun.singh@example.com', 1, 55000),
('Priya', 'Sharma', 'priya.sharma@example.com', 2, 62000),
('Ravi', 'Verma', 'ravi.verma@example.com', 3, 50000);

Creating Indexes

To create some indexes on the last_name and email columns:

CREATE INDEX idx_last_name
ON employees (last_name);

CREATE UNIQUE INDEX idx_email
ON employees (email);

Showing Indexes

MySQL Example

To show indexes on the employees table:

SHOW INDEXES FROM employees;

Output

Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
employees 0 PRIMARY 1 id A 5 NULL NULL BTREE
employees 1 idx_last_name 1 last_name A 5 NULL NULL YES BTREE
employees 0 idx_email 1 email A 5 NULL NULL YES BTREE

SQL Server Example

To show indexes on the employees table:

EXEC sp_helpindex 'employees';

Output

index_name index_description index_keys
PK__employees__3213E83F7F60ED59 clustered, unique, primary key located on PRIMARY id
idx_last_name nonclustered located on PRIMARY last_name
idx_email nonclustered, unique, located on PRIMARY email

PostgreSQL Example

To show indexes on the employees table:

SELECT * FROM pg_indexes WHERE tablename = 'employees';

Output

schemaname tablename indexname tablespace indexdef
public employees employees_pkey CREATE UNIQUE INDEX employees_pkey ON public.employees USING btree (id)
public employees idx_last_name CREATE INDEX idx_last_name ON public.employees USING btree (last_name)
public employees idx_email CREATE UNIQUE INDEX idx_email ON public.employees USING btree (email)

Conclusion

Knowing how to display indexes on a table is essential for understanding and managing your database schema. This chapter covered the basic syntax for showing indexes in MySQL, SQL Server, and PostgreSQL, provided examples to illustrate its use, and demonstrated how to interpret the output. Understanding how to use SHOW INDEXES effectively will help you optimize the performance of your database queries.

Comments

Spring Boot 3 Paid Course Published for Free
on my Java Guides YouTube Channel

Subscribe to my YouTube Channel (165K+ subscribers):
Java Guides Channel

Top 10 My Udemy Courses with Huge Discount:
Udemy Courses - Ramesh Fadatare