Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1
Tài kèo bóng đá pháp này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

5.9. kèo bóng đá pháp

PostgreSQLHỗ trợ cơ bản

5.9.1. Tổng quan

kèo bóng đá pháp đề cập đến việc chia những gì một cách logic một cách hợp lý

  • Hiệu suất truy vấn có thể được cải thiện đáng kể trong

  • Khi truy vấn hoặc cập nhật truy cập một tỷ lệ phần trăm lớn của a

  • Tải và xóa số lượng lớn có thể được thực hiện bằng cách thêm hoặc thêmthay đổi bảng sốBẢNG DROPVACUUM​​Chi phíXóa.

  • Dữ kèo bóng đá pháp hiếm khi được sử dụng có thể được di chuyển sang rẻ hơn và chậm hơn

Những lợi ích thường sẽ chỉ có giá trị khi một bảng

Hiện tại,PostgreSQLHỗ trợ kèo bóng đá pháp qua kế thừa bảng. Mỗi kèo bóng đá phápPhần 5.8)

Các hình thức kèo bóng đá pháp sau đây có thể được thực hiện trongPostgreSQL:

kèo bóng đá pháp phạm vi

Bảng được kèo bóng đá pháp thành"Phạm vi"Được xác định bởi một cột khóa hoặc bộ của

Danh sách kèo bóng đá pháp

Bảng được kèo bóng đá pháp bằng cách liệt kê rõ ràng

5.9.2. Thực hiện

Để thiết lập bảng được kèo bóng đá pháp, làm như sau:

  1. Tạo"Master"Bảng,

    Bảng này sẽ không chứa dữ kèo bóng đá pháp. Không xác định bất kỳ séc nào

  2. Tạo một số"Child"Bảng

    Chúng tôi sẽ gọi các bảng con là kèo bóng đá phápPostgreSQLBảng.

  3. Thêm các ràng buộc bảng vào các bảng kèo bóng đá pháp để xác định

    Ví dụ điển hình sẽ là:

    Kiểm tra (x = 1)

    Đảm bảo rằng các ràng buộc đảm bảo rằng không có

    Kiểm tra (Outletid từ 100 đến 200)

    Điều này là sai vì không rõ kèo bóng đá pháp nào

    Lưu ý rằng không có sự khác biệt về cú pháp giữa phạm vi

  4. Đối với mỗi kèo bóng đá pháp, hãy tạo một chỉ mục trên khóa

  5. Tùy chọn, xác định trình kích hoạt hoặc quy tắc để chuyển hướng dữ kèo bóng đá pháp

  6. Đảm bảo rằnginstraint_exclusionTham số cấu hình không bị vô hiệu hóa trongPostgreSql.conf. Nếu có, các truy vấn sẽ không

Ví dụ: giả sử chúng ta đang xây dựng cơ sở dữ kèo bóng đá pháp cho a

Tạo phép đo bảng (

Chúng tôi biết rằng hầu hết các truy vấn sẽ truy cập chỉ vào tuần trước,

Trong tình huống này, chúng ta có thể sử dụng kèo bóng đá pháp để giúp chúng ta gặp gỡ

  1. Bảng chính làĐo lườngbảng, được khai báo chính xác là

  2. Tiếp theo chúng tôi tạo một kèo bóng đá pháp cho mỗi tháng hoạt động:

    Tạo bảng đo_Y2006M02 () kế thừa (Đo lường);

    Mỗi kèo bóng đá pháp là các bảng hoàn chỉnhĐo lườngBảng.

    Điều này giải quyết một trong những vấn đề của chúng tôi: xóa dữ kèo bóng đá pháp cũ. MỗiBẢNG DROPtrên bàn trẻ nhất và

  3. Chúng tôi phải cung cấp các ràng buộc bảng không chồng chéo.

    Tạo bảng đo_Y2006M02 (
  4. Có lẽ chúng ta cũng cần các chỉ mục trên các cột chính:

    19381_19773

    Chúng tôi chọn không thêm các chỉ mục khác vào thời điểm này.

  5. Chúng tôi muốn ứng dụng của chúng tôi có thể nóiChèn vào đo ...và có

    Tạo hoặc thay thế chức năng Đo_insert_trigger ()

    Sau khi tạo chức năng, chúng tôi tạo một trình kích hoạt

    Tạo Trigger Insert_Meas mua sắm_Trigger

    Chúng ta phải xác định lại chức năng kích hoạt mỗi tháng để

    Chúng tôi có thể muốn chèn dữ kèo bóng đá pháp và có máy chủ

    Tạo hoặc thay thế chức năng đo lường_insert_trigger ()

    Định nghĩa kích hoạt giống như trước đây. Lưu ý rằngnếuKiểm tra phải khớp chính xác với nhauKiểm traràng buộc cho nó

    Trong khi hàm này phức tạp hơn

    Lưu ý:Trong thực tế, tốt nhất là kiểm tra

Như chúng ta có thể thấy, một sơ đồ kèo bóng đá pháp phức tạp có thể yêu cầu một

5.9.3. Quản lý

Thông thường tập hợp các kèo bóng đá pháp được thiết lập khi ban đầu

Tùy chọn đơn giản nhất để xóa dữ kèo bóng đá pháp cũ chỉ đơn giản là bỏ rơi

23930_23966

Điều này có thể nhanh chóng xóa hàng triệu bản ghi vì nó

một tùy chọn khác thường thích hơn là loại bỏ

thay đổi bảng đo_Y2006M02 Không có phép đo kế thừa;

Điều này cho phép các hoạt động tiếp theo được thực hiện trên dữ kèo bóng đá phápCopy, pg_dumphoặc các công cụ tương tự. Nó

Tương tự chúng ta có thể thêm một kèo bóng đá pháp mới để xử lý dữ liệu mới. Chúng tôi

Tạo bảng đo_Y2008M02 (

Thay thế, đôi khi thuận tiện hơn để tạo

Tạo bảng đo_Y2008M02

5.9.4. kèo bóng đá pháp và

Loại trừ ràng buộclà một truy vấn

Đặt ràng buộc_exclusion = ON;

Không loại trừ ràng buộc, truy vấn ở trên sẽ quétĐo lườngBảng. Với sự loại trừ ràng buộcWHEREmệnh đề. Khi người lập kế hoạch

Bạn có thể sử dụngGiải thíchLệnh đếninstraint_exclusiontrên và một kế hoạch với nó.

Đặt ràng buộc_exclusion = TẮT;

Một số hoặc tất cả các kèo bóng đá pháp có thể sử dụng quét chỉ mục thay thế

Đặt ràng buộc_exclusion = ON;

Lưu ý rằng loại trừ ràng buộc chỉ được điều khiển bởiKiểm traCác ràng buộc, không phải bởi sự hiện diện của

Cài đặt mặc định (và được đề xuất) củaurdaint_exclusionthực sự cũng khôngtrêncũng khôngTẮT, nhưng một cài đặt trung gian được gọi làkèo bóng đá pháp, gây ra kỹ thuậttrênCài đặtKiểm traCác ràng buộc trong tất cả các truy vấn, ngay cả những câu hỏi đơn giản không thể xảy ra

5.9.5. kèo bóng đá pháp thay thế

Một cách tiếp cận khác để chuyển hướng chèn vào

Tạo Quy tắc Đo_insert_y2006m02 AS

một quy tắc có chi phí cao hơn đáng kể so với kích hoạt, nhưng

lưu ý rằngCopyBỏ qua các quy tắc.Copyđể chènCopykhông

Một nhược điểm khác của phương pháp quy tắc là có

kèo bóng đá pháp cũng có thể được sắp xếp bằng cách sử dụngLiên minh tất cảXem, thay vì kế thừa bảng.

Tạo phép đo xem là

Tuy nhiên, sự cần thiết phải tạo lại chế độ xem thêm một bước bổ sung để

5.9.6. Hãy cẩn thận

Các cảnh báo sau đây áp dụng cho các bảng được kèo bóng đá pháp:

  • Không có cách tự động nào để xác minh rằng tất cả cácKiểm traCác ràng buộc là lẫn nhau

  • Các sơ đồ được hiển thị ở đây giả sử rằng khóa kèo bóng đá phápCập nhậtĐiều đó cố gắng làm điều đóKiểm traràng buộc. Nếu bạn cần xử lý những trường hợp như vậy, bạn có thể đặt

  • Nếu bạn đang sử dụng thủ côngVACUUMhoặckèo bóng đá pháp tíchCác lệnh, đừng quên

    kèo bóng đá pháp tích đo lường;

    Sẽ chỉ xử lý bảng chính.

Các cảnh báo sau đây áp dụng cho loại trừ ràng buộc:

  • Loại trừ ràng buộc chỉ hoạt động khi truy vấnWHEREmệnh đề chứa hằng số. MỘT"ổn định"Các chức năng nhưcurrent_datephải tránh.

  • Giữ cho các ràng buộc kèo bóng đá pháp đơn giản, khác là

  • Tất cả các ràng buộc trên tất cả các kèo bóng đá pháp của bảng chính