Indexing — creating data structure for faster lookups. When — frequent queries on specific columns.
How Indexes Work:
Without Index:
SELECT * FROM users WHERE email = 'a@b.com'
(Full table scan: 1M rows)
With Index:
CREATE INDEX idx_email ON users(email)
SELECT * FROM users WHERE email = 'a@b.com'
(Index scan: ~3-4 operations)
Types:
Best Practices: