Nâng caoHiệu năng ~10 phút

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.

Lý thuyết

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)

Dữ liệu mẫu

Đang tải dữ liệu mẫu…