Nói chung, tôi thấy rằng việc sử dụng rộng rãi UNION
gợi ý thiết kế cơ sở dữ liệu xấu. Có những trường hợp UNION
và UNION ALL
có ý nghĩa nhưng chúng phải tương đối hiếm bên ngoài các biểu thức bảng phổ biến đệ quy.
PostgreSQL cung cấp một số lượng lớn các tùy chọn để giữ hiệu suất trên một bảng có thể quản lý được và như bạn đã chỉ ra các chỉ mục từng phần là một cách rất tốt để quản lý vấn đề này.
Vấn đề chính khi chia nhỏ các bảng như UNION
như vậy các câu lệnh phổ biến là nó làm cho việc quản lý khóa chính và khóa ngoài trở nên khá rắc rối. Nói chung, hầu như luôn tốt hơn rất nhiều khi đảm bảo cấu trúc dữ liệu của bạn rõ ràng và dễ quản lý, sau đó lo lắng về việc tối ưu hóa hơn là lo lắng về việc tối ưu hóa và sau đó cố gắng quản lý giải pháp tối ưu hóa.