Tôi có một lượng lớn dữ liệu mô hình thời tiết được đưa vào cơ sở dữ liệu PostgreSQL. Máy có 8 nhân và 16 GB RAM. Tôi đang chạy PostgreSQL 9.3 với PostGIS 2.1. Mỗi bảng sẽ có một loạt dữ liệu thời tiết khác nhau (nhiệt độ, điểm sương, gió, v.v.). Mỗi bảng sẽ có 6-7 cột: vĩ độ, kinh độ, hình học điểm, độ cao, ngày tháng mà mô hình có liên quan và 1-2 giá trị dữ liệu quan tâm. Dữ liệu sẽ được truy vấn chủ yếu cho một khung giới hạn theo thời gian và độ cao. Sẽ có khoảng 145.757.360 hàng trên mỗi bảng (dữ liệu cũ hơn bây giờ không còn phù hợp sẽ bị xóa). Tôi ước tính kích thước của các bảng là khoảng 10 GB mỗi bảng không có chỉ mục. (Đó là 52 byte dữ liệu cộng với 23 byte phí trên mỗi hàng). Dữ liệu sẽ được cập nhật / chèn thường xuyên khi dữ liệu mô hình mới có sẵn. Ghi chú:
Vì vậy, tôi đang xem xét hai kế hoạch này:
- Đơn giản chỉ mục và cụm theo (datetime, độ cao) với một chỉ mục bổ sung cho hình dạng điểm. Chạy một công việc định kỳ thông thường xóa các hàng cũ, chạy chân không / phân tích và phân cụm lại.
- Phân vùng theo datetime và sau đó cụm và chỉ mục theo độ cao trên mỗi bảng với một chỉ mục trên hình học. Chạy một công việc định kỳ thông thường để thêm các bảng mới về phía trước và loại bỏ các bảng cũ.
Thêm nữa,
- Vì vậy, tôi biết rằng việc thả một cái bàn sẽ hiệu quả hơn rất nhiều và xóa và hút bụi. Nhưng tôi sẽ thấy một hiệu suất tăng khác?
- Các phân vùng có phù hợp không khi tất cả các bảng sẽ được cập nhật và chọn đồng đều cho đến khi bị xóa là không liên quan (tài liệu chỉ ra rằng các phân vùng hoạt động tốt nhất khi chỉ một vài trong số chúng được chọn)?
Khi phân phối dữ liệu, các lựa chọn sẽ nhanh hơn chỉ số cụm? Câu trả lời có thay đổi nếu nhiều yêu cầu được thực hiện cùng một lúc không?
Cảm ơn bạn. Tôi hy vọng tôi đưa lên tất cả các dữ liệu cần thiết. Nếu không cho tôi biết và tôi sẽ thêm nó.
xmin
hoặcxmax
, vv Có một tính năng mà có thể làm cho nó thành 9.4 mà có thể sẽ kích thích bạn, được gọi là chỉ số minmax, mà sẽ làm cho mọi việc như thế này rất thuận tiện hơn.