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 / 7.1
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 chohiện tạiPhiê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ế.

Tạo chỉ kèo chấp bóng đá hôm nay

tên

Tạo chỉ kèo chấp bóng đá hôm nay-Xác định chỉ kèo chấp bóng đá hôm nay mới

10671_10681

Tạo [duy nhất] chỉ kèo chấp bóng đá hôm nay [đồ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 | CUỐI CÙNG  ] [, ...] )
    [ VỚI (Storage_Parameter[=giá trị] [, ...])]]
    [Không gian bảngTableSpace_Name]
    [ Ở ĐÂUvị ngữ]

Mô tả

Tạo chỉ kèo chấp bóng đá hôm nayXây dựng một chỉ kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay 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 chấp bóng đá hôm nay đượ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 chấp bóng đá hôm nay hỗ trợ các chỉ kèo chấp bóng đá hôm nay Multicolumn.

Một trường chỉ kèo chấp bóng đá hôm nay 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. Ví dụ: một chỉ kèo chấp bóng đá hôm nay được tính toán trêntrên (col)sẽ cho phép mệnh đềWHERE Upper (col) = 'jim'Để sử dụng một chỉ kèo chấp bóng đá hôm nay.

PostgreSQLCung cấp các phương thức chỉ kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay 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 chấp bóng đá hôm nay chứa các kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay so với phần còn lại của bảng. Ví dụ: nếu bạn có một bảng chứa cả các đơn đặt hàng được lập hóa đơn và chưa được thanh toán trong đó các đơn đặt hàng chưa được thực hiện một phần nhỏ của tổng số bảng và đó là một phần thường được sử dụng, bạn có thể cải thiện hiệu suất bằng cách tạo một chỉ kèo chấp bóng đá hôm nay trên phần đó. Một ứng dụng khả thi khác là sử dụngWHEREvớ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 chấp bóng đá hôm nay. 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 chấp bóng đá hôm nay 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"13777_14066WHEREmệnh đề, hãy nhớ đánh dấu hàm bất biến khi bạn tạo nó.

tham số

độc đáo

khiến hệ thống kiểm tra các giá trị trùng lặp trong bảng khi chỉ kèo chấp bóng đá hôm nay đượ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 chấp bóng đá hôm nay trùng lặp sẽ tạo ra lỗi.

đồng thời

Khi tùy chọn này được sử dụng,POSTGRESQLsẽ xây dựng chỉ kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay 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. Có một số cảnh báo để biết khi sử dụng tùy chọn này - xemChỉ kèo chấp bóng đá hôm nay xây dựng đồng thời.

cho các bảng tạm thời,Tạo chỉ kèo chấp bóng đá hôm nayluô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 chấp bóng đá hôm nay không hòa âm rẻ hơn.

Nếu không tồn tại

15333_15578Nếu không tồn tạiđược chỉ định.

tên

15693_15861PostgreSQLChọ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 chấp bóng đá hôm nay.

Table_Name

Tên (có thể là trình độ lược đồ) của bảng được lập chỉ kèo chấp bóng đá hôm nay.

Phương pháp

Tên của phương thức chỉ kèo chấp bóng đá hôm nay sẽ được sử dụng. Lựa chọn làBtree, Hash, Gist, spgist, GinBrin. Phương thức mặc định làBtree.

Cột_name

Tên của một cột của bảng.

Biểu thức

16668_16910

đối chiếu

Tên của đối chiếu sẽ sử dụng cho chỉ kèo chấp bóng đá hôm nay. Theo mặc định, chỉ kèo chấp bóng đá hôm nay sử dụng đối chiếu được khai báo cho cột được lập chỉ kèo chấp bóng đá hôm nay hoặc đối chiếu kết quả của biểu thức được lập chỉ kèo chấp bóng đá hôm nay. Các chỉ kèo chấp bóng đá hôm nay với các đối chiếu không mặc định có thể hữu ích cho các truy vấn liên quan đến các biểu thức bằng cách sử dụng các đối chiếu không mặc định.

opClass

Tên của một lớp toán tử. Xem bên dưới để biết chi tiết.

ASC

Chỉ định thứ tự sắp xếp tăng dần (là mặc định).

Desc

Chỉ định thứ tự sắp xếp giảm dần.

NULLS đầu tiên

Chỉ định rằng nulls sắp xếp trước các nulls. Đây là mặc định khiDESCđược chỉ định.

nulls cuối cùng

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.

Storage_Parameter

Tên của tham số lưu trữ dành riêng cho phương pháp chỉ kèo chấp bóng đá hôm nay. Nhìn thấyTham số lưu trữ chỉ kèo chấp bóng đá hôm nayĐể biết chi tiết.

TablePace_Name

Không gian bảng để tạo chỉ kèo chấp bóng đá hôm nay. Nếu không được chỉ định,default_tablespaceđược tư vấn hoặcTemp_TablespaceĐối với các chỉ kèo chấp bóng đá hôm nay trên bảng tạm thời.

vị ngữ

Biểu thức ràng buộc cho một chỉ kèo chấp bóng đá hôm nay một phần.

Tham số lưu trữ chỉ kèo chấp bóng đá hôm nay

Tùy chọnvới18893_18913Thông số lưu trữĐối với chỉ kèo chấp bóng đá hôm nay. Mỗi phương thức chỉ kèo chấp bóng đá hôm nay có tập hợp các tham số lưu trữ được phép riêng. Các phương thức chỉ số B-Tree, Hash, Gist và SP-Gist đều chấp nhận tham số này:

fillfactor

Fillfactor cho một chỉ kèo chấp bóng đá hôm nay là một phần trăm xác định mức độ đầy đủ của phương thức chỉ kèo chấp bóng đá hôm nay sẽ cố gắng đóng gói các trang chỉ kèo chấp bóng đá hôm nay. Đố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 chấp bóng đá hôm nay ban đầu và cả khi mở rộng chỉ kèo chấp bóng đá hôm nay ở bên phải (thêm các giá trị khóa lớn nhất mới). Nếu các trang sau đó trở nên đầy đủ, chúng sẽ bị chia tách, dẫn đến sự xuống cấp dần dần về hiệu quả của chỉ số. B-Cree sử dụng một bộ điền dụng mặc định là 90, nhưng bất kỳ giá trị số nguyên nào từ 10 đến 100 đều có thể được chọn. Nếu bảng là tĩnh thì Fillfactor 100 là tốt nhất để giảm thiểu kích thước vật lý của chỉ kèo chấp bóng đá hôm nay, nhưng đối với các bảng được cập nhật mạnh, một bộ xử lý nhỏ hơn sẽ tốt hơn để giảm thiểu nhu cầu chia tách trang. Các phương pháp chỉ kèo chấp bóng đá hôm nay khác sử dụng fillfactor theo những cách khác nhau nhưng gần như tương tự; Trình điền mặc định khác nhau giữa các phương thức.

Chỉ số GIST chấp nhận thêm tham số này:

bộ đệm

Xác định xem kỹ thuật xây dựng bộ đệm được mô tả trongPhần 59.4.1được sử dụng để xây dựng chỉ kèo chấp bóng đá hôm nay. 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 chấp bóng đá hôm nay đạt đếnhiệu quả_cache_size. Mặc định làAuto.

Chỉ kèo chấp bóng đá hôm nay GIN Chấp nhận các tham số khác nhau:

Fastupdate

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 61.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ênTẮTđược phép như mô tả trongPhần 18.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 chấp bóng đá hôm nay nhập chỉ kèo chấp bóng đá hôm nay đang chờ xử lý, nhưng bản thân nó không tự xóa các kèo chấp bóng đá hôm nay trước đó. Bạn có thể muốnNút hútBảng sau đó để đảm bảo danh sách đang chờ xử lý được làm trống.

gin_pending_list_limit

tùy chỉnhgin_pending_list_limittham số. Giá trị này được chỉ định trong kilobyte.

BrinChỉ kèo chấp bóng đá hôm nay Chấp nhận một tham số khác:

pages_per_range

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 chấp bóng đá hôm nay của ABrinindex (xemPhần 62.1Để biết thêm chi tiết). Mặc định là128.

Chỉ kèo chấp bóng đá hôm nay xây dựng đồng thời

Tạo một chỉ kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay chống lại ghi và thực hiện toàn bộ chỉ số 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 chấp bóng đá hôm nay kết thúc. Điều này có thể có ảnh hưởng nghiêm trọng nếu hệ thống là cơ sở dữ liệu sản xuất trực tiếp. Các bảng rất lớn có thể mất nhiều giờ để được lập chỉ kèo chấp bóng đá hôm nay và ngay cả đối với các bảng nhỏ hơn, bản dựng chỉ kèo chấp bóng đá hôm nay có thể khóa các nhà văn trong các khoảng thời gian dài không thể chấp nhận được cho một hệ thống sản xuất.

PostgreSQL23305_23403đồng thờiTùy chọnTạo chỉ kèo chấp bóng đá hôm nay. Khi tùy chọn này được sử dụng,PostgreSQL23557_24082

Trong bản dựng chỉ kèo chấp bóng đá hôm nay đồng thời, chỉ kèo chấp bóng đá hôm nay thực sự được nhập vào danh kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay phải chờ các giao dịch hiện tại đã sửa đổi bảng chấm dứt. Sau lần quét thứ hai, bản dựng chỉ kèo chấp bóng đá hôm nay phải chờ bất kỳ giao dịch nào có ảnh chụp nhanh (xemChươ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 được xây dựng trên các bảng khác. Sau đó, cuối cùng chỉ kèo chấp bóng đá hôm nay có thể được đánh dấu sẵn sàng để sử dụng vàTạo chỉ kèo chấp bóng đá hôm naylệnh chấm dứt. Tuy nhiên, ngay cả sau đó, chỉ kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay.

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 duy nhất trong một chỉ kèo chấp bóng đá hôm nay duy nhất,Tạo chỉ kèo chấp bóng đá hôm nayLệ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 chấp bóng đá hôm nay đích truy vấn vì nó có thể không đầy đủ; Tuy nhiên, nó vẫn sẽ tiêu thụ cập nhật chi phí. ThePSQL \ Dlệnh sẽ báo cáo một chỉ kèo chấp bóng đá hôm nay nhưkhông hợp lệ:

postgres =# \ d tab
       Bảng "public.tab"
 Cột |  Loại | Sửa đổi 
--------+---------+-----------
 col | Số nguyên | 
Chỉ kèo chấp bóng đá hôm nay:
    "idx" btree (col) không hợp lệ

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 chấp bóng đá hôm nay và thử lại để thực hiệnTạo chỉ kèo chấp bóng đá hôm nay đồng thời. (Một khả năng khác là xây dựng lại chỉ kèo chấp bóng đá hôm nay 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.)

26003_26415"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 chấp bóng đá hôm nay biểu thức và chỉ kèo chấp bóng đá hôm nay 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.

Các bản dựng chỉ kèo chấp bóng đá hôm nay chính quy cho phép các bản dựng chỉ kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay đồ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. Một điểm khác biệt khác là một thông thườngTạo chỉ kèo chấp bóng đá hôm nayCó thể thực hiện lệnh trong một khối giao dịch, nhưngTạo chỉ kèo chấp bóng đá hôm nay đồng thờikhông thể.

ghi chú

xemChương 11Để biết thông tin về khi nào các chỉ kèo chấp bóng đá hôm nay 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

27609_27709Reindex27739_28119

Hiện tại, chỉ có các phương thức B-Tree, Gist, Gin và Brin chỉ có các chỉ kèo chấp bóng đá hôm nay Multicolumn. Tối đa 32 trường có thể được chỉ định theo mặc định. (Giới hạn này có thể được thay đổi khi xây dựngPostgreSQL.) Chỉ B-cây hiện đang hỗ trợ các chỉ kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay. Lớp toán tử xác định các toán tử sẽ được sử dụng bởi chỉ kèo chấp bóng đá hôm nay cho cột đó. Ví dụ: chỉ kèo chấp bóng đá hôm nay B-Tree trên các số nguyên bốn byte sẽ sử dụngINT4_OPS28701_29271Phần 11.9và trongPhần 35.14.

Đối với các phương thức chỉ kèo chấp bóng đá hôm nay 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 cuối cùngcó thể được chỉ định để sửa đổi thứ tự sắp xếp của chỉ kèo chấp bóng đá hôm nay. Vì một chỉ kèo chấp bóng đá hôm nay đượ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 chấp bóng đá hôm nay - Đặt hàng sắp xếp đó đã có sẵn với một chỉ kèo chấp bóng đá hôm nay thông thường. Giá trị của các tùy chọn này là các chỉ kèo chấp bóng đá hôm nay 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 của 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 chấp bóng đá hôm nay để 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 chấp bóng đá hôm nay 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ố. Đối với các chỉ kèo chấp bóng đá hôm nay biểu thức mới, cần phải chạyPhâ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 chấp bóng đá hôm nay này.

Đối với hầu hết các phương thức chỉ kèo chấp bóng đá hôm nay, tốc độ tạo chỉ kèo chấp bóng đá hôm nay phụ thuộc vào cài đặt củabảo trì_work_mem30974_31164

sử dụngDrop IndexĐể xóa một chỉ kèo chấp bóng đá hôm nay.

Phát hành trướcPostgreSQLcũng có phương thức chỉ kèo chấp bóng đá hôm nay 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. Nếu nhưSử dụng rtreeđược chỉ định,Tạo chỉ kèo chấp bóng đá hôm naysẽ 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 ý chính.

ví dụ

Để tạo chỉ kèo chấp bóng đá hôm nay B-cây trên cộtTiêu đềTrong bảngPhim:

Tạo chỉ kèo chấp bóng đá hôm nay độc đáo Title_idx trên phim (Tiêu đề);

Để tạo một chỉ kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay 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 chấp bóng đá hôm nay, 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 chấp bóng đá hôm nay với đối chiếu không mặc định:

Tạo chỉ kèo chấp bóng đá hôm nay Title_idx_German trên phim (tiêu đề đối chiếu "DE_DE");

​​Để tạo một chỉ kèo chấp bóng đá hôm nay với thứ tự sắp xếp không mặc định của NULLS:

Tạo chỉ kèo chấp bóng đá hôm nay TITT_IDX_NULLS_LOW trên phim (Tiêu đề đầu tiên);

Để tạo một chỉ kèo chấp bóng đá hôm nay với hệ số điền không mặc định:

Tạo chỉ kèo chấp bóng đá hôm nay độc đáo Title_idx trên phim (Tiêu đề) với (fillfactor = 70);

Để tạo AGinChỉ kèo chấp bóng đá hôm nay với các bản cập nhật nhanh bị tắt:

32874_32962

Để tạo một chỉ kèo chấp bóng đá hôm nay trên cộtCODETrong bảngPhimvà có chỉ kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay;

Để tạo chỉ kèo chấp bóng đá hôm nay 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 về kết quả của chức năng chuyển đổi:

Tạo chỉ kèo chấp bóng đá hôm nay Pointloc
    Trên các điểm sử dụng gist (hộp (vị trí, vị trí));
Chọn * từ các điểm
    Trong đó hộp (vị trí, vị trí) && '(0,0), (1,1)' :: box;

Để tạo một chỉ kèo chấp bóng đá hôm nay mà không cần khóa ghi vào bảng:

Tạo chỉ kèo chấp bóng đá hôm nay đồng thời sales_quantity_index trên sales_table (số lượng);

Tương thích

Tạo chỉ kèo chấp bóng đá hôm naylà mộtPOSTGRESQL33940_34019

Xem thêm

INDEX, Drop Index