Mục đích: Tăng tốc tốc độ truy vấn (vì dữ liệu những năm về sau thường gấp 1,5 -> 2 năm trước.
=== Bài toán: ===
Hiện tại em có 1 bảng có 50 triệu bản ghi. Bảng có cấu trúc như sau:
TABLE(
id bigint primary key,
insert_date datetime,
data1 text,
data2 text,
…
data30 text
)
Query báo cáo thường sẽ where theo insert_date. Và cx có search theo Id.
=== Đề xuất: ===
Em áp dụng partition table theo tháng năm với trường insert_date (2020-01-01, 2020-02-01, … -> 2030-12-01).
=== Thắc mắc ===
Case 1: Em định sửa PK thành (insert_date) và add non-clustered index cho trường id.
Case 2: Em sửa sửa PK thành (insert_date, id) và add non-clustered index cho trường id.
Case 3: Em sửa sửa PK thành (id, insert_date) và add non-clustered index cho trường insert_date.
Mong mọi người đưa ra ý kiến và giải đáp cho thắc mắc của em ạ.
Chân thành cảm ơn.