Tạo [duy nhất] chỉ kèo bóng đá euro [đồng thời] [[nếu không tồn tại]tên] trênTable_Name[sử dụngPhương pháp]Cột_name| (Biểu thức) [Collateđối chiếu] [opClass] [ASC | Desc] [nulls đầu tiên |Storage_Parameter[=giá trị] [, ...])]]TableSpace_Name]vị ngữ]
Tạo chỉ kèo bóng đá euroXây dựng một chỉ kèo bóng đá euro trên (các) cột được chỉ định của quan hệ được chỉ định, có thể là một bảng hoặc chế độ xem được vật chất hóa. Các chỉ kèo bóng đá euro chủ yếu được sử dụng để nâng cao hiệu suất cơ sở dữ liệu (mặc dù sử dụng không phù hợp có thể dẫn đến hiệu suất chậm hơn).
(Các) trường chính cho chỉ kèo bóng đá euro được chỉ định là tên cột hoặc thay thế dưới dạng biểu thức được viết trong ngoặc đơn. Nhiều trường có thể được chỉ định nếu phương thức chỉ kèo bóng đá euro hỗ trợ các chỉ kèo bóng đá euro Multicolumn.
Một trường chỉ kèo bóng đá euro có thể là một biểu thức được tính toán từ các giá trị của một hoặc nhiều cột của hàng bảng. Tính năng này có thể được sử dụng để có được quyền truy cập nhanh vào dữ liệu dựa trên một số chuyển đổi dữ liệu cơ bản.trên (col)sẽ cho phép mệnh đềWHERE Upper (col) = 'jim'Để sử dụng một chỉ kèo bóng đá euro.
PostgreSQLCung cấp các phương thức chỉ kèo bóng đá euro B-Tree, Hash, Gist, Sp-Gist, Gin và Brin. Người dùng cũng có thể xác định các phương thức chỉ kèo bóng đá euro của riêng họ, nhưng điều đó khá phức tạp.
KhiWHEREmệnh đề có mặt, AChỉ số một phầnđược tạo. Chỉ số một phần là một chỉ kèo bóng đá euro chứa các kèo bóng đá euro chỉ cho một phần của bảng, thường là một phần hữu ích hơn cho việc lập chỉ kèo bóng đá euro so với phần còn lại của bảng.WHEREvớiđộc đáoĐể thực thi tính duy nhất trên một tập hợp con của bảng. Nhìn thấyPhần 11.8Để thảo luận thêm.
Biểu thức được sử dụng trongWHEREmệnh đề chỉ có thể tham khảo các cột của bảng bên dưới, nhưng nó có thể sử dụng tất cả các cột, không chỉ các cột được lập chỉ kèo bóng đá euro. Hiện tại, các mẫu con và biểu thức tổng hợp cũng bị cấm trongWHERE. Các hạn chế tương tự áp dụng cho các trường chỉ kèo bóng đá euro là biểu thức.
Tất cả các chức năng và toán tử được sử dụng trong một định nghĩa chỉ số phải là"Immutable", nghĩa là kết quả của họ chỉ phụ thuộc vào các đối số của họ và không bao giờ vào bất kỳ ảnh hưởng bên ngoài nào (chẳng hạn như nội dung của bảng khác hoặc thời gian hiện tại). Hạn chế này đảm bảo rằng hành vi của chỉ số được xác định rõ.WHEREmệnh đề, hãy nhớ đánh dấu hàm bất biến khi bạn tạo nó.
khiến hệ thống kiểm tra các giá trị trùng lặp trong bảng khi chỉ kèo bóng đá euro được tạo (nếu dữ liệu đã tồn tại) và mỗi lần dữ liệu được thêm vào. Nỗ lực chèn hoặc cập nhật dữ liệu sẽ dẫn đến các kèo bóng đá euro trùng lặp sẽ tạo ra lỗi.
Khi tùy chọn này được sử dụng,POSTGRESQLsẽ xây dựng chỉ kèo bóng đá euro mà không cần bất kỳ khóa nào ngăn chặn các chèn, cập nhật hoặc xóa đồng thời trên bảng; trong khi một chỉ kèo bóng đá euro tiêu chuẩn xây dựng khóa ghi (nhưng không đọc) trên bảng cho đến khi hoàn thành.Chỉ kèo bóng đá euro xây dựng đồng thời.
cho các bảng tạm thời,Tạo chỉ kèo bóng đá euroluôn không hòa đồng, vì không có phiên nào khác có thể truy cập chúng và việc tạo chỉ kèo bóng đá euro không hòa âm rẻ hơn.
Không ném lỗi nếu mối quan hệ có cùng tên đã tồn tại. Một thông báo được đưa ra trong trường hợp này.Nếu không tồn tạiđược chỉ định.
Tên của chỉ kèo bóng đá euro sẽ được tạo. Không có tên lược đồ có thể được bao gồm ở đây;PostgreSQLChọn tên phù hợp dựa trên tên của bảng cha và tên cột được lập chỉ kèo bóng đá euro.
Tên (có thể là trình độ lược đồ) của bảng được lập chỉ kèo bóng đá euro.
Tên của phương thức chỉ kèo bóng đá euro sẽ được sử dụng. Lựa chọn làBtree, Hash, Gist, spgist, GinvàBrin. Phương thức mặc định làBtree.
Tên của một cột của bảng.
Một biểu thức dựa trên một hoặc nhiều cột của bảng. Biểu thức thường phải được viết bằng dấu ngoặc đơn xung quanh, như thể hiện trong cú pháp.
Tên của đối chiếu sẽ sử dụng cho chỉ kèo bóng đá euro. Theo mặc định, chỉ kèo bóng đá euro sử dụng đối chiếu được khai báo cho cột được lập chỉ kèo bóng đá euro hoặc đối chiếu kết quả của biểu thức được lập chỉ kèo bóng đá euro.
Tên của một lớp toán tử. Xem bên dưới để biết chi tiết.
Chỉ định thứ tự sắp xếp tăng dần (là mặc định).
Chỉ định thứ tự sắp xếp giảm dần.
Chỉ định rằng nulls sắp xếp trước các nulls. Đây là mặc định khiDESCđược chỉ định.
Chỉ định rằng NULLS sắp xếp sau những người không phải là null. Đây là mặc định khiDesckhông được chỉ định.
Tên của tham số lưu trữ dành riêng cho phương pháp chỉ kèo bóng đá euro. Nhìn thấyTham số lưu trữ chỉ kèo bóng đá euroĐể biết chi tiết.
Không gian bảng để tạo chỉ kèo bóng đá euro. Nếu không được chỉ định,default_tablespaceđược tư vấn hoặcTemp_TablespaceĐối với các chỉ kèo bóng đá euro trên bảng tạm thời.
Biểu thức ràng buộc cho một chỉ kèo bóng đá euro một phần.
Tùy chọnvớimệnh đề Chỉ địnhThông số lưu trữĐối với chỉ kèo bóng đá euro. Mỗi phương thức chỉ kèo bóng đá euro có tập hợp các tham số lưu trữ được phép riêng.
Fillfactor cho một chỉ kèo bóng đá euro là một phần trăm xác định mức độ đầy đủ của phương thức chỉ kèo bóng đá euro sẽ cố gắng đóng gói các trang chỉ kèo bóng đá euro. Đối với các cây B, các trang lá được lấp đầy theo tỷ lệ phần trăm này trong quá trình xây dựng chỉ kèo bóng đá euro ban đầu và cả khi mở rộng chỉ kèo bóng đá euro ở bên phải (thêm các giá trị khóa lớn nhất mới).
Chỉ số GIST chấp nhận thêm tham số này:
Xác định xem kỹ thuật xây dựng bộ đệm được mô tả trongPhần 61.4.1được sử dụng để xây dựng chỉ kèo bóng đá euro. VớiTẮTNó bị vô hiệu hóa, vớitrênNó được bật và vớiAutoBan đầu nó bị vô hiệu hóa, nhưng đã bật trên đường khi kích thước chỉ kèo bóng đá euro đạt đếnhiệu quả_cache_size. Mặc định làAuto.
Chỉ kèo bóng đá euro GIN Chấp nhận các tham số khác nhau:
Cài đặt này kiểm soát việc sử dụng kỹ thuật cập nhật nhanh được mô tả trongPhần 63.4.1. Nó là một tham số boolean:trênCho phép cập nhật nhanh,TẮTVô hiệu hóa nó. (Chính tả thay thếtrênvàTẮTđược phép như mô tả trongPhần 19.1.) Mặc định làtrên.
Lưu ý:TurnFastupDateTẮT quaINDEX ALTERNgăn chặn các phần chèn trong tương lai đi vào danh sách các kèo bóng đá euro nhập chỉ kèo bóng đá euro đang chờ xử lý, nhưng bản thân nó không tự xóa các kèo bóng đá euro trước đó. Bạn có thể muốnNút hútBảng hoặc cuộc gọi
gin_clean_pending_list
Hàm sau để đảm bảo danh sách đang chờ xử lý được làm trống.
tùy chỉnhgin_pending_list_limitTham số. Giá trị này được chỉ định trong kilobyte.
BrinChỉ kèo bóng đá euro Chấp nhận một tham số khác:
Xác định số lượng các khối bảng tạo thành một phạm vi khối cho mỗi kèo bóng đá euro của ABrinindex (xemPhần 64.1Để biết thêm chi tiết). Mặc định là128.
Tạo một chỉ kèo bóng đá euro có thể can thiệp vào hoạt động thường xuyên của cơ sở dữ liệu. Thông thườngPostgreSQLKhóa bảng để được lập chỉ kèo bóng đá euro chống lại ghi và thực hiện toàn bộ chỉ kèo bóng đá euro xây dựng chỉ với một lần quét bảng. Các giao dịch khác vẫn có thể đọc bảng, nhưng nếu họ cố gắng chèn, cập nhật hoặc xóa các hàng trong bảng, chúng sẽ chặn cho đến khi bản dựng chỉ kèo bóng đá euro kết thúc.
PostgreSQLHỗ trợ các chỉ kèo bóng đá euro xây dựng mà không khóa các văn bản. Phương thức này được gọi bằng cách chỉ địnhđồng thờiTùy chọn củaTạo chỉ kèo bóng đá euro. Khi tùy chọn này được sử dụng,PostgreSQLPhải thực hiện hai lần quét của bảng và ngoài ra, nó phải chờ tất cả các giao dịch hiện có có khả năng sửa đổi hoặc sử dụng chỉ kèo bóng đá euro để chấm dứt. Do đó, phương pháp này đòi hỏi nhiều công việc hơn so với xây dựng chỉ kèo bóng đá euro tiêu chuẩn và mất nhiều thời gian hơn để hoàn thành.
Trong bản dựng chỉ kèo bóng đá euro đồng thời, chỉ kèo bóng đá euro thực sự được nhập vào danh kèo bóng đá euro hệ thống trong một giao dịch, sau đó hai lần quét bảng xảy ra trong hai giao dịch nữa. Trước mỗi lần quét bảng, bản dựng chỉ kèo bóng đá euro phải chờ các giao dịch hiện tại đã sửa đổi bảng chấm dứt.Chương 13) Dự đoán lần quét thứ hai để chấm dứt, bao gồm các giao dịch được sử dụng bởi bất kỳ giai đoạn nào của các chỉ số đồng thời xây dựng trên các bảng khác. Sau đó, cuối cùng chỉ kèo bóng đá euro có thể được đánh dấu sẵn sàng để sử dụng vàTạo chỉ kèo bóng đá eurolệnh chấm dứt. Tuy nhiên, ngay cả sau đó, chỉ kèo bóng đá euro có thể không được sử dụng ngay lập tức cho các truy vấn: trong trường hợp xấu nhất, nó không thể được sử dụng miễn là các giao dịch tồn tại trước khi bắt đầu xây dựng chỉ kèo bóng đá euro.
Nếu có vấn đề phát sinh trong khi quét bảng, chẳng hạn như bế tắc hoặc vi phạm tính độc đáo trong một chỉ kèo bóng đá euro duy nhất,Tạo chỉ kèo bóng đá euroLệnh sẽ thất bại nhưng bỏ lại phía sau"không hợp lệ"INDEX. Chỉ số này sẽ bị bỏ qua cho các kèo bóng đá euro đích truy vấn vì nó có thể không đầy đủ;PSQL \ DLệnh sẽ báo cáo một chỉ kèo bóng đá euro nhưkhông hợp lệ:
postgres =# \ d tab
Phương pháp phục hồi được đề xuất trong các trường hợp như vậy là bỏ chỉ kèo bóng đá euro và thử lại để thực hiệnTạo chỉ kèo bóng đá euro đồng thời. (Một khả năng khác là xây dựng lại chỉ kèo bóng đá euro bằngReindex. Tuy nhiên, vìReindexKhông hỗ trợ các bản dựng đồng thời, tùy chọn này không có vẻ hấp dẫn.)
Một cảnh báo khác khi xây dựng một chỉ kèo bóng đá euro duy nhất đồng thời là ràng buộc duy nhất đã được thực thi đối với các giao dịch khác khi việc quét bảng thứ hai bắt đầu. Điều này có nghĩa là các vi phạm ràng buộc có thể được báo cáo trong các truy vấn khác trước khi chỉ số có sẵn để sử dụng hoặc thậm chí trong trường hợp bản dựng chỉ số cuối cùng thất bại."không hợp lệ"INDEX tiếp tục thực thi ràng buộc tính độc đáo của nó sau đó.
Xây dựng đồng thời các chỉ kèo bóng đá euro biểu thức và chỉ kèo bóng đá euro một phần được hỗ trợ. Các lỗi xảy ra trong việc đánh giá các biểu thức này có thể gây ra hành vi tương tự như mô tả ở trên cho các vi phạm ràng buộc duy nhất.
Bản dựng chỉ kèo bóng đá euro chính quy cho phép các bản dựng chỉ kèo bóng đá euro thông thường khác trên cùng một bảng xảy ra song song, nhưng chỉ có một bản dựng chỉ kèo bóng đá euro đồng thời có thể xảy ra trên bảng tại một thời điểm. Trong cả hai trường hợp, trong khi đó, không có loại sửa đổi lược đồ khác trên bảng.Tạo chỉ kèo bóng đá euroCó thể thực hiện lệnh trong một khối giao dịch, nhưngTạo chỉ kèo bóng đá euro đồng thờikhông thể.
xemChương 11Để biết thông tin về khi nào các chỉ kèo bóng đá euro có thể được sử dụng, khi chúng không được sử dụng và trong đó các tình huống cụ thể, chúng có thể hữu ích.
THẬN TRỌNG |
27679_27779ReindexSau khi gặp sự cố cơ sở dữ liệu nếu có những thay đổi không rõ ràng. Ngoài ra, các thay đổi đối với các chỉ kèo bóng đá euro băm không được sao chép qua việc phát trực tuyến hoặc sao chép dựa trên tệp sau khi sao lưu cơ sở ban đầu, vì vậy chúng đưa ra câu trả lời sai cho các truy vấn sau đó sử dụng chúng. |
Hiện tại, chỉ có các phương thức B-Tree, Gist, Gin và Brin chỉ hỗ trợ các chỉ kèo bóng đá euro Multicolumn. Tối đa 32 trường có thể được chỉ định theo mặc định.PostgreSQL.) Chỉ có B-cây hiện đang hỗ trợ các chỉ kèo bóng đá euro duy nhất.
ANLớp toán tửcó thể được chỉ định cho mỗi cột của một chỉ kèo bóng đá euro. Lớp toán tử xác định các toán tử sẽ được sử dụng bởi chỉ kèo bóng đá euro cho cột đó.INT4_OPSlớp; Lớp toán tử này bao gồm các hàm so sánh cho các số nguyên bốn byte.Phần 11.9và trongPhần 36,14.
Đối với các phương thức chỉ kèo bóng đá euro hỗ trợ quét đã đặt hàng (hiện, chỉ có B-tree), các điều khoản tùy chọnASC, Desc, NULLS đầu tiên, và/hoặcNULLS LASTCó thể được chỉ định để sửa đổi thứ tự sắp xếp của chỉ kèo bóng đá euro. Vì một chỉ kèo bóng đá euro được đặt hàng có thể được quét về phía trước hoặc lùi, nên thường không hữu ích khi tạo một cột đơnDescChỉ kèo bóng đá euro - Đặt hàng sắp xếp đó đã có sẵn với một chỉ kèo bóng đá euro thông thường. Giá trị của các tùy chọn này là các chỉ kèo bóng đá euro Multicolumn có thể được tạo phù hợp với thứ tự sắp xếp được yêu cầu bởi một truy vấn đặt hàng hỗn hợp, chẳng hạn nhưChọn ... Đặt hàng bởi X ASC, Y Desc. TheNULLSTùy chọn rất hữu ích nếu bạn cần hỗ trợ"NULLS sắp xếp thấp"Hành vi, thay vì mặc định"NULLS Sắp xếp cao", trong các truy vấn phụ thuộc vào các chỉ kèo bóng đá euro để tránh sắp xếp các bước.
Hệ thống thường xuyên thu thập số liệu thống kê trên tất cả các cột của bảng. Các chỉ kèo bóng đá euro không thể hiện mới được tạo ra có thể sử dụng ngay các số liệu thống kê này để xác định tính hữu dụng của chỉ số.Phân tíchhoặc đợiDaemon AutovacuumĐể phân tích bảng để tạo số liệu thống kê cho các chỉ kèo bóng đá euro này.
Đối với hầu hết các phương thức chỉ kèo bóng đá euro, tốc độ tạo một chỉ kèo bóng đá euro phụ thuộc vào cài đặt củabảo trì_work_mem. Các giá trị lớn hơn sẽ giảm thời gian cần thiết để tạo chỉ kèo bóng đá euro, miễn là bạn không làm cho nó lớn hơn lượng bộ nhớ thực sự có sẵn, điều này sẽ đưa máy hoán đổi.
sử dụngDrop IndexĐể xóa một chỉ kèo bóng đá euro.
Phát hành trướcPostgreSQLcũng có phương thức chỉ kèo bóng đá euro r-cây. Phương pháp này đã bị loại bỏ vì nó không có lợi thế đáng kể so với phương pháp GIST.Sử dụng RTREEđược chỉ định,Tạo chỉ kèo bóng đá eurosẽ giải thích nó làSử dụng GIST, để đơn giản hóa việc chuyển đổi cơ sở dữ liệu cũ thành GIST.
Để tạo chỉ kèo bóng đá euro B-cây trên cột31852_31859Trong bảngPhim:
Tạo chỉ kèo bóng đá euro độc đáo Title_idx trên phim (Tiêu đề);
Để tạo một chỉ kèo bóng đá euro trên biểu thứcthấp hơn (tiêu đề), Cho phép tìm kiếm không nhạy cảm trường hợp hiệu quả:
Tạo chỉ kèo bóng đá euro trên phim ((thấp hơn (tiêu đề)));
(Trong ví dụ này, chúng tôi đã chọn bỏ qua tên chỉ kèo bóng đá euro, vì vậy hệ thống sẽ chọn một tên, thường làfilms_lower_idx.)
Để tạo một chỉ kèo bóng đá euro với đối chiếu không mặc định:
Tạo chỉ kèo bóng đá euro TITTER_IDX_GERMAN trên phim (tiêu đề đối chiếu "DE_DE");
Để tạo một chỉ kèo bóng đá euro với thứ tự sắp xếp không mặc định của NULLS:
Tạo chỉ kèo bóng đá euro Title_idx_nulls_low trên phim (Tiêu đề đầu tiên);
Để tạo một chỉ kèo bóng đá euro với hệ số điền không mặc định:
Tạo chỉ kèo bóng đá euro độc đáo Title_idx trên phim (Tiêu đề) với (fillfactor = 70);
Để tạo AGinChỉ kèo bóng đá euro với các bản cập nhật nhanh bị tắt:
32944_33032
Để tạo một chỉ kèo bóng đá euro trên cộtmãTrong bảngPhimvà có chỉ kèo bóng đá euro nằm trong không gian bảngIndexSpace:
Tạo index code_idx trên films (mã) không gian bảng chỉ kèo bóng đá euro;
Để tạo chỉ kèo bóng đá euro GIST trên thuộc tính điểm để chúng ta có thể sử dụng hiệu quả các toán tử hộp trên kết quả của chức năng chuyển đổi:
Tạo chỉ kèo bóng đá euro Pointloc
Để tạo một chỉ kèo bóng đá euro mà không khóa ghi vào bảng:
Tạo chỉ kèo bóng đá euro đồng thời sales_quantity_index trên sales_table (số lượng);