SQL ยท Chapter 35 of 42

SQL Indexes

An INDEX is a data structure (usually a B-tree) that speeds up lookups and joins on specific columns.

Trade-off: faster reads, slower writes (indexes must be updated on INSERT/UPDATE/DELETE).

When to index

Columns used in WHERE, JOIN or ORDER BY on large tables. Skip on small tables โ€” a full scan is fine.

Composite indexes

`(a, b)` speeds queries filtering by `a` alone or `a` + `b`, but NOT by `b` alone.

Example 1 (sql)
CREATE INDEX idx_users_email ON users(email);
Output
Index created

Speed up email lookups.

Example 2 (sql)
CREATE UNIQUE INDEX idx_orders_num
  ON orders(order_number);
Output
Unique index (also enforces uniqueness)

Doubles as a UNIQUE constraint.

Key points

  • Speeds reads, slows writes.
  • Index columns used in filters/joins.
  • Composite indexes have column-order rules.
  • Unique indexes enforce uniqueness.
๐Ÿ’ก Note: Use your database's `EXPLAIN` to see whether an index is actually used for a query.

๐Ÿ“ Quick Quiz

1. Indexes:

2. A composite index on (a, b) helps queries on:

3. The command to see how a query uses indexes: