Q

Quản trị viên

Là một lập trình viên yêu công nghệ, thích viết blog để chia sẻ kiến thức, kinh nghiệm lập trình và những điều thú vị trong thế giới tech.

1741 bài viết · Website
Cơ sở dữ liệu 22/09/2026 5 phút

Khi nào nên phân vùng PostgreSQL: con dao hai lưỡi, đo trước khi chia

Phân vùng không phải luôn nhanh hơn. Đo thật: cùng 3 triệu dòng, truy vấn khớp khóa phân vùng nhanh gấp 5 lần, nhưng truy vấn point lookup theo cột khác lại chậm gấp 20 lần (phải dò index của cả 50 vùng) cộng planning đắt gấp 7 lần. Khi nào phân vùng đáng, khi nào chỉ thêm phức tạp. PostgreSQL 16.

Cơ sở dữ liệu 22/09/2026 5 phút

Phân vùng bảng trong PostgreSQL: range, list, hash — chọn kiểu nào cho dữ liệu nào

PostgreSQL có ba kiểu phân vùng: RANGE theo khoảng (ngày, số) cho dữ liệu thời gian, LIST theo giá trị rời rạc (miền, loại), HASH chia đều theo băm khóa. Đo thật: dòng tự định tuyến vào đúng vùng (RANGE 100k mỗi năm, HASH cân bằng ~100k mỗi vùng), và một truy vấn chỉ quét đúng partition liên quan. Khi nào dùng kiểu nào. PostgreSQL 16.

Cơ sở dữ liệu 22/09/2026 6 phút

TRUNCATE vs DELETE trong PostgreSQL: nhanh hơn 34 lần, và những khác biệt dễ vấp

TRUNCATE vứt cả tệp dữ liệu nên gần như tức thời và trả chỗ ngay; DELETE quét từng dòng, để lại dead tuple và bảng không nhỏ lại. Đo thật: làm rỗng bảng 3 triệu dòng mất 678 ms với DELETE so với 20 ms với TRUNCATE. Cùng khác biệt về giao dịch, sequence và trigger. PostgreSQL 16.