PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Hiệu suất cơ sở dữ liệu:lọc trên cột so với bảng riêng biệt

Đây là một vấn đề phổ biến trong thiết kế cơ sở dữ liệu:Câu hỏi về việc tách hoặc "lưu trữ" các bản ghi không còn "hoạt động".

Các cách tiếp cận phổ biến nhất là:

  • Mọi thứ trong một bảng, đánh dấu các đơn đặt hàng là "hoàn thành" nếu thích hợp. Ưu điểm:Giải pháp đơn giản nhất (cả mã và cấu trúc khôn ngoan), tính linh hoạt tốt (ví dụ:đơn hàng dễ "phục hồi"). Nhược điểm:Các bảng có thể khá lớn, một vấn đề đối với các truy vấn và ví dụ:sao lưu.
  • Lưu trữ nội dung cũ vào bảng riêng biệt. Giải quyết các vấn đề từ cách tiếp cận đầu tiên với chi phí phức tạp hơn.
  • Sử dụng bảng với phân vùng dựa trên giá trị. Điều đó có nghĩa là về mặt logic (đối với ứng dụng) mọi thứ đều nằm trong một bảng, nhưng đằng sau DBMS đặt mọi thứ vào các khu vực riêng biệt tùy thuộc vào (các) giá trị trên (các) cột. Bạn có thể sẽ sử dụng cột "hoàn thành" hoặc "ngày hoàn thành đơn hàng" để phân vùng.

Cách tiếp cận cuối cùng kết hợp các phần tốt của hai cách đầu tiên, nhưng cần hỗ trợ trong DBMS và phức tạp hơn để thiết lập.

Lưu ý:

Các bảng chỉ lưu trữ dữ liệu "lưu trữ" thường được gọi là "bảng lưu trữ". Một số DBMS thậm chí còn cung cấp công cụ lưu trữ đặc biệt cho các bảng này (ví dụ:MySQL), được tối ưu hóa để cho phép truy xuất nhanh chóng và hiệu quả lưu trữ tốt, với chi phí thay đổi / chèn chậm.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tham gia một đến nhiều và truy xuất kết quả duy nhất

  2. Chúng ta đã sẵn sàng cho PGDay Bắc Âu chưa?

  3. Kết nối Ứng dụng iPhone với PostgreSQL bằng Libpq

  4. Kết quả không mong muốn từ truy vấn SQL với GIỮA dấu thời gian

  5. Postgres ngăn dấu thời gian với chuyển đổi múi giờ