Tài liệu 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 choPostgreSQL : 문서 : 17 : 11.7.와이즈 토토 대한 색인Phiê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ế.

11.7. Chỉ mục trên biểu thức

Một cột chỉ mục không chỉ là một cột của phần bên dưới bảng, nhưng có thể là một chức năng 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 hữu ích cho có được quyền truy cập nhanh vào các bảng dựa trên kết quả của 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 chỉ mục nếu một chỉ mục được xác định trên kết quả củaHạ (col1)chức năng:

Tạo Chỉ mục Test1_Lower_Col1_IDX trên Test1 (Hạ (Col1));

Nếu chúng ta khai báo chỉ mục nàyđộc đáo, nó sẽ ngăn chặn việc tạo các hàng cócol1Giá trị chỉ khác nhau trong trường hợp như hàng cócol1Giá trị thực sự là giống hệt nhau. Do đó, các chỉ mục trên các biểu thức có thể được sử dụng để thực thi những ràng buộc không thể xác định được là duy nhất đơn giản hạn chế.

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';

11804_11857

tạo chỉ mục people_names on people ((first_name || '' |

Cú pháp củaTạo chỉ mụclệnh thường yêu cầu viết dấu ngoặc đơn xung quanh chỉ mục Biểu thức, như thể hiện trong ví dụ thứ hai. Các dấu ngoặc đơn có thể bị bỏ qua khi biểu thức chỉ là một cuộc gọi chức năng, như trong Ví dụ đầu tiên.

Biểu thức chỉ mục tương đối tốn kém để duy trì, bởi vì (các) biểu thức dẫn xuất phải được tính toán cho mỗi hàng Khi chèn và bất cứ khi nào nó được cập nhật. Tuy nhiên, chỉ số Biểu thức làkhôngđược tính toán lại trong quá trình tìm kiếm được lập chỉ mục, vì chúng đã Được lưu trữ trong chỉ số. Trong cả hai ví dụ ở trên, hệ thống nhìn thấy truy vấn chỉ làtrong đó indexedColumn = 'không thay đổi'Và vì vậy 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 khác. Do đó, các chỉ mục trên 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.