Nếu bạn đang thực hiện truy vấn tối thiểu/tối đa, bạn có thích sử dụng bảng tổng hợp hay chỉ truy vấn trên một loạt các hàng trong bảng thô?Để tổng hợp hoặc không tổng hợp, đó là câu hỏi thiết kế lược đồ cơ sở dữ liệu
Đây rõ ràng là một câu hỏi rất cởi mở và không có câu trả lời đúng, vì vậy tôi chỉ đang tìm kiếm các đề xuất chung của mọi người. Giả sử rằng bảng dữ liệu thô bao gồm dấu thời gian, khóa ngoài số (nói id người dùng) và giá trị thập phân (nói số tiền mua). Hơn nữa, giả sử rằng có hàng triệu hàng trong bảng.
Tôi đã thực hiện cả hai và bị rách. Trên một bảng tổng hợp bàn tay đã cho tôi truy vấn nhanh hơn đáng kể nhưng với chi phí của sự gia tăng của các bảng bổ sung. Hiển thị các giá trị hiện tại cho một phạm vi tổng hợp hoặc yêu cầu thả hoàn toàn trở lại bảng dữ liệu thô hoặc kết hợp nhiều kết hợp hạt mịn hơn. Tôi đã thấy rằng theo dõi trong mã ứng dụng trong đó bảng tổng hợp để truy vấn khi có nhiều công việc mà bạn nghĩ và thay đổi lược đồ đó sẽ được yêu cầu, vì phạm vi kết hợp ban đầu sẽ luôn không đủ ("Nhưng tôi muốn xem doanh số bán hàng của chúng tôi trong 3 kỳ trả tiền cuối cùng! ").
Mặt khác, truy vấn từ dữ liệu thô có thể bị trừng phạt chậm nhưng cho phép tôi rất linh hoạt về phạm vi dữ liệu. Khi phạm vi giới hạn thay đổi, tôi chỉ cần thay đổi một truy vấn thay vì phải xây dựng lại các bảng tổng hợp. Tương tự, mã ứng dụng yêu cầu ít cập nhật hơn. Tôi nghi ngờ rằng nếu tôi thông minh hơn về lập chỉ mục của mình (tức là luôn có các chỉ số bao gồm tốt), tôi có thể giảm hình phạt chọn từ dữ liệu thô nhưng đó không phải là thuốc chữa bách bệnh.
Dù sao tôi cũng có thể có cả hai thế giới tốt nhất?
Cơ sở dữ liệu này là gì? –
Tôi thường sử dụng MySQL nhưng hy vọng các mẹo của mọi người áp dụng cho tất cả các cơ sở dữ liệu SQL. – pr1001
@ pr1001: Đây là vấn đề chung ở mức độ nào đó, nhưng một số cơ sở dữ liệu cung cấp các cơ chế để làm cho vấn đề này dễ dàng hơn (ví dụ: "quan điểm vật chất" của Oracle), vì vậy thực hiện "quyền" này sẽ là cơ sở dữ liệu cụ thể ở mức độ – skaffman