Một cột chỉ kèo bóng đá c1 không chỉ là một cột của bảng bên dưới, nhưng có thể là một hàm hoặc biểu thức vô hướng được tính toán từ một hoặc nhiều cột của bảng. Tính năng này rất hữu ích để có được quyền truy cập nhanh vào các bảng dựa trên kết quả tính toán.
Ví dụ: một cách phổ biến để thực hiện các so sánh nhạy cảm trường hợp là sử dụngHạ
chức năng:
Chọn * Từ Test1 trong đó Hạ (col1) = 'value';
Truy vấn này có thể sử dụng một chỉ kèo bóng đá c1 nếu một người đã được xác định dựa trên kết quả củaHạ (col1)
chức năng:
Tạo Chỉ kèo bóng đá c1 Test1_Lower_Col1_IDX trên Test1 (Hạ (Col1));
Nếu chúng ta khai báo chỉ kèo bóng đá c1 nàyđộc đáo
, nó sẽ ngăn chặn việc tạo các hàng cócol1
Giá trị chỉ khác nhau trong trường hợp, cũng như các hàng cócol1
Giá trị thực sự giống hệt nhau. Do đó, các kèo bóng đá c1 các biểu thức có thể được sử dụng để thực thi các ràng buộc không thể xác định là các ràng buộc duy nhất đơn giản.
như một ví dụ khác, nếu người ta thường xuyên thực hiện các truy vấn như:
Chọn * Từ những người trong đó (First_name || '' || last_name) = 'John Smith';
Sau đó, nó có thể đáng để tạo một chỉ kèo bóng đá c1 như thế này:
Tạo Index People_Names on People ((First_name || '' |
Cú pháp củaTạo chỉ kèo bóng đá c1
lệnh thường yêu cầu viết dấu ngoặc đơn xung quanh các biểu thức chỉ kèo bóng đá c1, như được hiển thị trong ví dụ thứ hai. Các dấu ngoặc đơn có thể được bỏ qua khi biểu thức chỉ là một cuộc gọi hàm, như trong ví dụ đầu tiên.
Biểu thức chỉ kèo bóng đá c1 tương đối tốn kém để duy trì, vì (các) biểu thức dẫn xuất phải được tính toán cho mỗi lần chèn hàng vàPostgresql: Tà. Tuy nhiên, các biểu thức chỉ kèo bóng đá c1 làkhôngĐược tính toán lại trong quá trình tìm kiếm được lập chỉ kèo bóng đá c1, vì chúng đã được lưu trữ trong chỉ kèo bóng đá c1. Trong cả hai ví dụ ở trên, hệ thống xem truy vấn chỉ làWHERE indexedColumn = 'hằng số'
Và do đó, tốc độ của tìm kiếm tương đương với bất kỳ truy vấn chỉ mục đơn giản nào khác. Do đó, các kèo bóng đá c1 các biểu thức là hữu ích khi tốc độ truy xuất quan trọng hơn là chèn và tốc độ cập nhật.
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 phù hợpMẫu nàyĐể báo cáo vấn đề tài liệu.