Cơ chế Clustered Index của SQLite
Bảng chất kỹ thuật
Thông thường khi lưu trữ file lớn, người ta chia nhỉ thành các slices
- Sử dụng một table làm "Block Map", nơi mỗi row đại diện cho một phân đoạn vật lý.
Bằng cách sử dụng Composite Primary Key (node_id, slice_number), bạn đang tận dụng cơ chế Clustered Index của SQLite.
Tại sao nó lại mạnh?
Trong SQLite, dữ liệu của một bảng được lưu trữ dưới dạng một cây B-Tree. Khi bạn đặt node_id làm thành phần đầu tiên của khóa chính:
- Sắp xếp vật lý: SQLite sẽ lưu trữ tất cả các dòng có cùng node_id nằm liên tiếp nhau trên ổ đĩa.
- Giảm thiểu Disk Seek: Khi bạn đọc File A, đầu đọc của ổ cứng không phải nhảy qua lại để tìm các mảnh dữ liệu. Nó chỉ cần tìm đến vị trí đầu tiên của node_id và đọc một mạch các slice_number từ 0 đến N.
- Loại bỏ RowID ẩn: Trong SQLite, nếu không có khóa chính cụ thể, nó sẽ tạo một cột rowid ẩn. Việc tự định nghĩa PK giúp tiết kiệm dung lượng và tăng tốc độ truy xuất.
All rights reserved