Postgresql | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 5. | Chuyển tiếp nhanh | Tiếp theo |
PostgreSQLHỗ trợ cơ bản
tỷ lệ kèo bóng đá đề cập đến việc phân tách 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 các truy vấn hoặc cập nhật truy cập tỷ lệ kèo bóng đá 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 đổinhanh hơn nhiều so với hoạt động hàng loạt. Nó cũngNút hútChi phí gây ra bởi tỷ lệ kèo bóng đá số lượng lớnXóa.
Dữ liệu 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 tỷ lệ kèo bóng đá bảng
Hiện tại,PostgreSQLHỗ trợ tỷ lệ kèo bóng đá qua kế thừa bảng. Mỗi tỷ lệ kèo bóng đáPhần 5.8)
Các hình thức tỷ lệ kèo bóng đá sau đây có thể được thực hiện trongPostgreSQL:
Bảng được tỷ lệ kèo bóng đá thành"Phạm vi"Được xác định bởi tỷ lệ kèo bóng đá cột hoặc bộ
Bảng được tỷ lệ kèo bóng đá bằng cách liệt kê rõ ràng
Để thiết lập bảng được tỷ lệ kèo bóng đá, làm như sau:
Tạo"Master"Bảng,
Bảng này sẽ không chứa dữ liệu. Không xác định bất kỳ séc nào
Tạo tỷ lệ kèo bóng đá số"Child"Bảng
Chúng tôi sẽ gọi các bảng con là tỷ lệ kèo bóng đáPostgreSQLBảng.
Thêm các ràng buộc bảng vào các bảng tỷ lệ kèo bóng đá để 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õ tỷ lệ kèo bóng đá nào
Lưu ý rằng không có sự khác biệt về cú pháp giữa phạm vi
Đối với mỗi tỷ lệ kèo bóng đá, hãy tạo một chỉ mục trên khóa
Tùy chọn, xác định trình kích hoạt hoặc quy tắc để chuyển hướng dữ liệu
Đảm bảo rằngurdaint_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ữ liệu cho tỷ lệ kèo bóng đá
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 tỷ lệ kèo bóng đá để giúp chúng ta gặp gỡ
Bảng chính làĐo lườngbảng, được khai báo chính xác là
Tiếp theo chúng tôi tạo một tỷ lệ kèo bóng đá cho mỗi tháng hoạt động:
Tạo bảng đo_Y2006M02 () kế thừa (Đo lường);
Mỗi tỷ lệ kèo bóng đá là các bảng hoàn chỉnhĐo lườngBảng.
Điều này giải quyết tỷ lệ kèo bóng đá trong những vấn đề của chúng tôi: xóa dữ liệu cũ. MỗiBẢNG DROPtrên bàn trẻ nhất và
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 (
Có lẽ chúng ta cũng cần các chỉ mục trên các cột chính:
19395_19787
Chúng tôi chọn không thêm các chỉ mục vào thời điểm này.
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 tỷ lệ kèo bóng đá trình kích hoạt mà
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ữ liệu và có máy chủ
Tạo hoặc thay thế chức năng Đo_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ơ đồ tỷ lệ kèo bóng đá phức tạp có thể yêu cầu một
Thông thường tập hợp các tỷ lệ kèo bóng đá được thiết lập khi ban đầu
Tùy chọn đơn giản nhất để xóa dữ liệu cũ chỉ đơn giản là bỏ rơi
23944_23980
Điều này có thể nhanh chóng xóa hàng triệu bản ghi vì nó
tỷ lệ kèo bóng đá tùy chọn khác thường thích hơn là xóa
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ữ liệuCopy, pg_dumphoặc các công cụ tương tự. Nó
Tương tự chúng ta có thể thêm một tỷ lệ kèo bóng đá mới để xử lý dữ liệu mới. Chúng tôi
Tạo bảng đo_Y2008M02 (
Như tỷ lệ kèo bóng đá sự thay thế, đôi khi thuận tiện hơn để tạo
Tạo bảng đo_Y2008M02
Loại trừ ràng buộclà tỷ lệ kèo bóng đá 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 đếnurdaint_exclusiontrên và tỷ lệ kèo bóng đá kế hoạch với nó.
Đặt ràng buộc_exclusion = TẮT;
Một số hoặc tất cả các tỷ lệ kèo bóng đá 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 tỷ lệ kèo bóng đá cài đặt trung gian được gọi làtỷ lệ kèo bóng đá, gây ra kỹ thuậttrên30363_30408Kiể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
tỷ lệ kèo bóng đá 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
tỷ lệ kèo bóng đá quy tắc có chi phí cao hơn đáng kể so với kích hoạt, nhưng
Nhận thức rằngCopyBỏ qua các quy tắc.Copyđể chènCopykhông
tỷ lệ kèo bóng đá nhược điểm khác của phương pháp quy tắc là có
tỷ lệ kèo bóng đá 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 tỷ lệ kèo bóng đá bước bổ sung để
Các cảnh báo sau đây áp dụng cho các bảng được tỷ lệ kèo bóng đá:
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 tỷ lệ kèo bóng đáCậ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ặctỷ lệ kèo bóng đá tíchCác lệnh, đừng quên
tỷ lệ kèo bóng đá 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_date
Phải tránh.
Giữ cho các ràng buộc tỷ lệ kèo bóng đá đơn giản, khác là
Tất cả các ràng buộc trên tất cả các tỷ lệ kèo bóng đá của bảng chính