Backend nền tảng
D4 · Index – Vì sao truy vấn nhanh hơn
B-Tree index: tìm kiếm O(log n) thay vì quét toàn bộ O(n).
D4 · Junior · cốt lõi
Index giống mục lục cuối sách: không cần lật từng trang, tra mục lục là nhảy thẳng đến trang cần.
Cốt lõi
- B-Tree index: tìm kiếm O(log n) thay vì quét toàn bộ O(n).
- Loại: Primary (clustered), Secondary, Composite (col1, col2) – thứ tự cột quan trọng.
- Index nhanh vì tránh full scan, tra cứu nhanh.
Đánh đổi
Đổi lại: ghi chậm hơn (phải cập nhật index) + tốn dung lượng. Không index cột ít giá trị khác nhau.
Trong thực tế
Uber index truy vấn địa lý → nhanh hơn ~100 lần.
Bug thường gặp
Truy vấn WHERE LOWER(email) = … hoặc LIKE '%abc' → index trên email không được dùng, quét toàn bảng.
Tự hỏi lại
Composite index (a,b) có dùng được cho WHERE b=? không? (Không – quy tắc leftmost prefix).