Docs học tập
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).

On this page