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 / 8.0 / 7.4 / 7.3 / 7.2

11.8. kèo tỷ số bóng đá euro hôm nay#

Akèo tỷ số bóng đá euro hôm naylà một chỉ kèo tỷ số bóng đá euro hôm nay được xây dựng trên một tập hợp con của bảng; tập hợp con được xác định bởi một biểu thức có điều kiện (được gọi làvị ngữcủa chỉ số một phần). Chỉ số chỉ chứa các mục cho các hàng bảng đáp ứng vị ngữ. Các kèo tỷ số bóng đá euro hôm nay là một tính năng chuyên dụng, nhưng có một số tình huống trong đó chúng hữu ích.

Một lý do chính cho việc sử dụng chỉ số một phần là để tránh lập chỉ kèo tỷ số bóng đá euro hôm nay các giá trị chung. Vì một truy vấn tìm kiếm một giá trị chung (một truy vấn cho hơn một vài phần trăm của tất cả các hàng bảng) sẽ không sử dụng chỉ kèo tỷ số bóng đá euro hôm nay, nên không có điểm nào trong việc giữ các hàng đó trong chỉ kèo tỷ số bóng đá euro hôm nay. Điều này làm giảm kích thước của chỉ số, sẽ tăng tốc các truy vấn sử dụng chỉ kèo tỷ số bóng đá euro hôm nay. Nó cũng sẽ tăng tốc nhiều hoạt động cập nhật bảng vì chỉ kèo tỷ số bóng đá euro hôm nay không cần được cập nhật trong mọi trường hợp.Ví dụ 11.1Hiển thị ứng dụng có thể của ý tưởng này.

Ví dụ 11.1. Thiết lập kèo tỷ số bóng đá euro hôm nay để loại trừ các giá trị chung

11920_12277

Giả sử một bảng như thế này:

Tạo bảng access_log (
    url varchar,
    client_ip inet,
    ...
);

Để tạo một kèo tỷ số bóng đá euro hôm nay phù hợp với ví dụ của chúng tôi, hãy sử dụng một lệnh như thế này:

Tạo chỉ kèo tỷ số bóng đá euro hôm nay access_log_client_ip_ix trên access_log (client_ip)
WHERE KHÔNG (client_ip inet '192.168.100.0' và
           client_ip <inet '192.168.100.255');

Một truy vấn điển hình có thể sử dụng chỉ kèo tỷ số bóng đá euro hôm nay này sẽ là:

Chọn *
Từ access_log
Trong đó url = '/index.html' và client_ip = inet '212.78.10.32';

12935_13105

Chọn *
Từ access_log
Trong đó url = '/index.html' và client_ip = inet '192.168.100,23';

Quan sát rằng loại chỉ số một phần này yêu cầu các giá trị chung phải được xác định trước, vì vậy các kèo tỷ số bóng đá euro hôm nay như vậy được sử dụng tốt nhất cho các phân phối dữ liệu không thay đổi. Các chỉ mục như vậy thỉnh thoảng có thể được tái tạo để điều chỉnh các bản phân phối dữ liệu mới, nhưng điều này thêm nỗ lực bảo trì.


Một cách sử dụng có thể khác cho một kèo tỷ số bóng đá euro hôm nay là loại trừ các giá trị khỏi chỉ mục mà khối lượng công việc truy vấn điển hình không quan tâm; Điều này được hiển thị trongVí dụ 11.2. Điều này dẫn đến những lợi thế tương tự như được liệt kê ở trên, nhưng nó ngăn chặnkhông quan tâmKhăn14060_14273

Ví dụ 11.2. Thiết lập kèo tỷ số bóng đá euro hôm nay để loại trừ các giá trị không quan tâm

14494_14804

14841_14930

Một truy vấn có thể sử dụng chỉ kèo tỷ số bóng đá euro hôm nay này sẽ là:

15027_15101

Tuy nhiên, chỉ kèo tỷ số bóng đá euro hôm nay cũng có thể được sử dụng trong các truy vấn không liên quanorder_nrall, E.G .:

Chọn * từ các đơn đặt hàng mà hóa đơn không đúng và số tiền 5000.00;

Điều này không hiệu quả như một kèo tỷ số bóng đá euro hôm nay trênsố tiềnCột sẽ là, vì hệ thống phải quét toàn bộ chỉ kèo tỷ số bóng đá euro hôm nay. Tuy nhiên, nếu có tương đối ít đơn đặt hàng không có, sử dụng chỉ số một phần này chỉ để tìm các đơn đặt hàng không có thể là một chiến thắng.

Lưu ý rằng truy vấn này không thể sử dụng chỉ kèo tỷ số bóng đá euro hôm nay này:

Chọn * từ đơn đặt hàng trong đó Order_NR = 3501;

Đơn hàng 3501 có thể nằm trong số các đơn đặt hàng được lập hóa đơn hoặc chưa được thanh toán.


Ví dụ 11.2cũng minh họa rằng cột được lập chỉ kèo tỷ số bóng đá euro hôm nay và cột được sử dụng trong vị ngữ không cần phải khớp.PostgreSQLHỗ trợ các kèo tỷ số bóng đá euro hôm nay với các vị từ tùy ý, miễn là chỉ có các cột của bảng được lập chỉ mục có liên quan. Tuy nhiên, hãy nhớ rằng vị ngữ phải phù hợp với các điều kiện được sử dụng trong các truy vấn được cho là được hưởng lợi từ chỉ số. Để chính xác, chỉ có thể sử dụng kèo tỷ số bóng đá euro hôm nay trong truy vấn nếu hệ thống có thể nhận ra rằngWHEREĐiều kiện của truy vấn về mặt toán học ngụ ý vị từ của chỉ kèo tỷ số bóng đá euro hôm nay.PostgreSQLKhông có một biểu tượng định lý tinh vi có thể nhận ra các biểu thức tương đương về mặt toán học được viết dưới các dạng khác nhau. .x <1ngụ ýx <2xông; Nếu không, điều kiện vị ngữ phải khớp chính xác với kèo tỷ số bóng đá euro hôm nay của truy vấnWHEREĐiều kiện hoặc chỉ mục sẽ không được công nhận là có thể sử dụng được. Kết hợp diễn ra tại thời gian lập kế hoạch truy vấn, không phải lúc chạy. Do đó, các điều khoản truy vấn được tham số hóa không hoạt động với một kèo tỷ số bóng đá euro hôm nay. Ví dụ: truy vấn đã chuẩn bị với tham số có thể chỉ địnhx <?Hồisẽ không bao giờ ngụ ýHồix <2Đối với tất cả các giá trị có thể của tham số.

Sử dụng thứ ba có thể cho các kèo tỷ số bóng đá euro hôm nay không yêu cầu chỉ số được sử dụng trong các truy vấn. Ý tưởng ở đây là tạo một chỉ mục duy nhất trên một tập hợp con của bảng, như trongVí dụ 11.3. Điều này thực thi tính duy nhất giữa các hàng thỏa mãn vị từ chỉ số, mà không ràng buộc những hàng không.

Ví dụ 11.3. Thiết lập một chỉ kèo tỷ số bóng đá euro hôm nay duy nhất một phần

Giả sử rằng chúng ta có một bảng mô tả kết quả kiểm tra. Chúng tôi muốn đảm bảo rằng chỉ có mộtHồiThành côngkèo tỷ số bóng đá euro hôm nay nhập cho một kết hợp chủ thể và kèo tỷ số bóng đá euro hôm nay tiêu nhất định, nhưng có thể có bất kỳ số lượng nàoHồikhông thành côngHồikèo tỷ số bóng đá euro hôm nay. Đây là một cách để làm điều đó:

Tạo các bài kiểm tra bảng (
    văn bản chủ đề,
    văn bản kèo tỷ số bóng đá euro hôm nay tiêu,
    thành công boolean,
    ...
);

Tạo chỉ kèo tỷ số bóng đá euro hôm nay duy nhất Tests_Success_Constraint trên các bài kiểm tra (chủ đề, kèo tỷ số bóng đá euro hôm nay tiêu)
    Thành công ở đâu;

Đây là một cách tiếp cận đặc biệt hiệu quả khi có một vài bài kiểm tra thành công và nhiều bài kiểm tra không thành công. Cũng có thể chỉ cho phép một null trong một cột bằng cách tạo một kèo tỷ số bóng đá euro hôm nay duy nhất vớilà nullHạn chế.


19309_19608PostgreSQL19649_19905

Hãy nhớ rằng việc thiết lập một kèo tỷ số bóng đá euro hôm nay cho thấy rằng bạn biết ít nhất là nhiều như trình lập kế hoạch truy vấn biết, đặc biệt bạn biết khi nào một chỉ mục có thể mang lại lợi nhuận. Hình thành kiến ​​thức này đòi hỏi kinh nghiệm và sự hiểu biết về cách các chỉ mục trongPostgreSQLCông việc. Trong hầu hết các trường hợp, lợi thế của một chỉ số kèo tỷ số bóng đá euro hôm nay so với một chỉ số thông thường sẽ là tối thiểu. Có những trường hợp họ khá phản tác dụng, như trongVí dụ 11.4.

Ví dụ 11.4. Không sử dụng các kèo tỷ số bóng đá euro hôm nay để thay thế cho phân vùng

Bạn có thể bị cám dỗ để tạo ra một tập hợp lớn các kèo tỷ số bóng đá euro hôm nay không chồng chéo, ví dụ

Tạo chỉ kèo tỷ số bóng đá euro hôm nay MyTable_CAT_1 trên mytable (dữ liệu) trong đó loại = 1;
Tạo chỉ kèo tỷ số bóng đá euro hôm nay myTable_cat_2 trên mytable (dữ liệu) trong đó loại = 2;
Tạo chỉ kèo tỷ số bóng đá euro hôm nay myTable_cat_3 trên mytable (dữ liệu) trong đó loại = 3;
...
Tạo chỉ kèo tỷ số bóng đá euro hôm nay mytable_cat_n21161_21199n;

Đây là một ý tưởng tồi! Gần như chắc chắn, bạn sẽ tốt hơn với một chỉ kèo tỷ số bóng đá euro hôm nay phi thành phần duy nhất, được tuyên bố giống như

Tạo chỉ kèo tỷ số bóng đá euro hôm nay myTable_cat_data trên mytable (danh kèo tỷ số bóng đá euro hôm nay, dữ liệu);

(Đặt cột danh kèo tỷ số bóng đá euro hôm nay lên hàng đầu, vì những lý do được mô tả trongPhần 11.321647_22096

Nếu bảng của bạn đủ lớn để một chỉ kèo tỷ số bóng đá euro hôm nay thực sự là một ý tưởng tồi, bạn nên xem xét sử dụng phân vùng thay thế (xemPhần 5.12). Với cơ chế đó, hệ thống hiểu rằng các bảng và chỉ kèo tỷ số bóng đá euro hôm nay không chồng chéo, cho đến nay có thể thực hiện tốt hơn.


Thông tin thêm về các kèo tỷ số bóng đá euro hôm nay có thể được tìm thấy trong[Ston89b], [Olson93][Seshadri95].

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.