Khi dung lượng dữ liệu vượt qua ngưỡng thông thường
Một bảng ghi log giao dịch hoặc đơn hàng với hơn 50 triệu dòng bắt đầu cho thấy sự chậm chạp rõ rệt khi thực hiện các phép quét bảng hoặc kết nối bảng (JOIN).
Chiến lược tối ưu hóa thực chiến
- Phân vùng bảng theo thời gian (Partition by Range) để giới hạn phạm vi quét dữ liệu theo tháng hoặc quý.
- Tận dụng chỉ mục BRIN (Block Range Index) cho các dữ liệu thời gian có tính tuần tự, giúp tiết kiệm tới 95% dung lượng lưu trữ chỉ mục so với B-Tree.
- Thiết lập Connection Pooling với PgBouncer để giảm thiểu chi phí khởi tạo kết nối nặng nề của PostgreSQL.