Nó không chỉ là "một loạt các điều chỉnh (chỉ mục, v.v.)". Đây là điều quan trọng và phải làm.
Bạn đã đăng một vài chi tiết, nhưng hãy thử.
Quy tắc là:Hãy thử và tìm cách làm việc chung nhất. Xem nó có vừa với RAM không. Tối ưu hóa phần cứng, cài đặt bộ đệm PG / OS và chỉ mục / phân cụm PG cho nó. Nếu không, hãy tìm các tổng hợp hoặc nếu nó không được chấp nhận và bạn cần truy cập hoàn toàn ngẫu nhiên, hãy nghĩ phần cứng nào có thể quét toàn bộ bảng cho bạn trong thời gian hợp lý.
Bảng của bạn lớn bao nhiêu (tính bằng gigabyte)? Nó so sánh với tổng RAM như thế nào? Cài đặt PG của bạn, bao gồm shared_buffers và effect_cache_size? Đây có phải là một máy chủ chuyên dụng không? Nếu bạn có một bảng 250 gig và khoảng 10 GB RAM, điều đó có nghĩa là bạn chỉ có thể vừa với 4% của bảng.
Có bất kỳ cột nào thường được sử dụng để lọc, chẳng hạn như trạng thái hoặc ngày tháng không? Bạn có thể xác định bộ làm việc được sử dụng phổ biến nhất (chỉ như tháng trước) không? Nếu vậy, hãy xem xét phân vùng hoặc phân cụm trên các cột này, và chắc chắn lập chỉ mục chúng. Về cơ bản, bạn đang cố gắng đảm bảo rằng càng nhiều bộ hoạt động càng tốt phù hợp với RAM.
Tránh quét bảng bằng mọi giá nếu nó không vừa với RAM. Nếu bạn thực sự cần quyền truy cập hoàn toàn ngẫu nhiên, cách duy nhất nó có thể sử dụng được là phần cứng thực sự phức tạp. Bạn sẽ cần cấu hình bộ nhớ / RAM liên tục có thể đọc 250 GB trong thời gian hợp lý.