Index — chỉ mục tăng tốc
Index giống mục lục của cuốn sách: giúp DBMS nhảy thẳng tới dòng cần tìm thay vì đọc cả bảng.
Không có index, để tìm WHERE name = 'An Nguyen' DBMS phải quét từng dòng (full table scan).
Có index trên cột name, DBMS dùng cấu trúc đã sắp xếp (B-Tree) để tìm nhanh hơn nhiều.
Tạo index
CREATE INDEX idx_emp_name ON employees(name);
Đánh đổi
- Index tăng tốc đọc nhưng làm chậm ghi (INSERT/UPDATE) và tốn dung lượng.
- Chỉ nên đánh index cho cột hay dùng trong WHERE/JOIN/ORDER BY.
Animation: bên trái là full scan (con trỏ chạy qua từng dòng), bên phải là index lookup (nhảy thẳng tới dòng đích).
Thuật ngữ (di chuột để xem giải thích)
Đang tải dữ liệu mẫu…
Không có index, để tìm WHERE name = 'An Nguyen' DBMS phải quét từng dòng (full table scan).
Có index trên cột name, DBMS dùng cấu trúc đã sắp xếp (B-Tree) để tìm nhanh hơn nhiều.
Tạo index
CREATE INDEX idx_emp_name ON employees(name);
Đánh đổi
- Index tăng tốc đọc nhưng làm chậm ghi (INSERT/UPDATE) và tốn dung lượng.
- Chỉ nên đánh index cho cột hay dùng trong WHERE/JOIN/ORDER BY.
Animation: bên trái là full scan (con trỏ chạy qua từng dòng), bên phải là index lookup (nhảy thẳng tới dòng đích).
Thuật ngữ (di chuột để xem giải thích)
Đang tải dữ liệu mẫu…
Đang tải trình soạn thảo…
Chạy truy vấn để xem kết quả tại đây.
Tạo index tên idx_users_city trên cột city của bảng users.
Đang tải trình soạn thảo…
- Chạy thử truy vấn mẫu
- Hoàn thành bài tập (0/1)