Một cột chỉ tỷ lệ kèo bóng đá 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 không phân biệt chữ hoa case là sử dụngHạ
11214_11226
Chọn * Từ Test1 trong đó Hạ (col1) = 'value';
Truy vấn này có thể sử dụng một chỉ tỷ lệ kèo bóng đá nếu một người đã được xác định về kết quả củaHạ (col1)
chức năng:
Tạo chỉ tỷ lệ kèo bóng đá Test1_Lower_col1_idx trên Test1 (Hạ (Col1));
Nếu chúng ta khai báo chỉ tỷ lệ kèo bóng đá 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 tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá như thế này:
Tạo Chỉ tỷ lệ kèo bóng đá People_Names on People ((First_name || '' |
Cú pháp củaTạo chỉ tỷ lệ kèo bóng đá
Lệnh thường yêu cầu viết dấu ngoặc đơn xung quanh các biểu thức chỉ tỷ lệ kèo bóng đá, như 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ỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá làkhôngĐược tính toán lại trong quá trình tìm kiếm được lập chỉ tỷ lệ kèo bóng đá, vì chúng đã được lưu trữ trong chỉ tỷ lệ kèo bóng đá. 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 tỷ lệ kèo bóng đá 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.