10 điểm bởi xguru 2021-05-12 | 3 bình luận | Chia sẻ qua WhatsApp

Những tinh chỉnh chính mà Narrative, một hệ thống hỗ trợ ra quyết định thông qua phân tích dữ liệu, đã tổng hợp từ kinh nghiệm thực tế

  • Không sử dụng cùng máy chủ với hệ thống production

  • Nâng cấp lên PG 12+ (không sử dụng CTE)

  • Giữ chỉ mục nhỏ nhất có thể

  • Phân vùng bảng (range/list)

  • Giảm thiểu I/O đĩa

  • Vacuum sau khi bulk insert

  • Sử dụng truy vấn song song

  • Tăng lấy mẫu thống kê (theo từng cột hoặc toàn bộ DB. Mặc định là 100 nhưng dùng 500)

  • Sử dụng ít cột hơn (vì đây là kiểu lưu trữ dựa trên hàng)

  • Với các bảng từ 50 triệu đến 100 triệu hàng, Postgres hoạt động rất tốt

  • Khi mở rộng tới quy mô hàng tỷ, khuyến nghị dùng Citus

https://www.citusdata.com : mã nguồn mở biến Postgres thành DB phân tán

3 bình luận

 
twince 2021-05-12

Theo kinh nghiệm thì khi dựa trên time series, tôi nghĩ timescaledb sẽ phù hợp hơn, nhưng cũng hơi thận trọng vì không có tài liệu đủ làm căn cứ. Về tỷ lệ nén và hiệu năng, tôi xin dè dặt để lại ý kiến rằng có lẽ timescaledb sẽ tốt hơn.

 
toughrogrammer 2021-05-12

Tôi tò mò không biết sẽ thế nào nếu so sánh citus với timescaledb.

 
galadbran 2021-05-12

Theo như tôi biết thì timescaledb có ưu thế ở cách phân vùng theo chuỗi thời gian, còn citus có ưu thế ở sharding... (Nghĩ kỹ thì không biết việc dùng cả hai cùng nhau có phải là điều bất khả thi không nhỉ?)