Index giống mục lục cuối sách: thay vì lật từng trang để tìm một từ, database nhảy thẳng tới đúng dòng. Nhờ đó các query lọc (WHERE), join hay sắp xếp (ORDER BY) nhanh hơn hẳn, và việc tìm theo giá trị duy nhất gần như tức thì.
Đánh đổi: index tốn thêm disk và làm ghi chậm hơn — mỗi INSERT/UPDATE/DELETE phải cập nhật cả index. Vì vậy đừng index mọi cột; chỉ index cột thật sự hay dùng để tìm kiếm. Đôi khi database còn bỏ qua index nếu nó không lọc bớt được mấy dòng (lọc kém hiệu quả).
sql
CREATE INDEX idx_users_email ON users (email);Muốn biết một query có dùng index hay không, chạy EXPLAIN ANALYZE để xem kế hoạch thực thi.