0

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

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí