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ỉ tỷ lệ kèo bóng đá

Tạo chỉ tỷ lệ kèo bóng đá - Xác định chỉ tỷ lệ kèo bóng đá mới

Synopsis

Tạo [duy nhất] chỉ tỷ lệ kèo bóng đá [đồng thời] [[nếu không tồn tại]tên] trên [chỉ]Table_Name[sử dụngPhương pháp]
    (Cột_name| (Biểu thức) [Collateđối chiếu] [11297_11306] [ASC | Desc] [nulls đầu tiên | CUỐI CÙNG  ] [, ...] )
    [ BAO GỒM (Cột_name[, ...])]]
    [ VỚI (Storage_Parameter[=giá trị] [, ...])]]
    [Không gian bảngTableSpace_Name]
    [ Ở ĐÂUvị ngữ]

Mô tả

Tạo chỉ tỷ lệ kèo bóng đáXây dựng một chỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá 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).

Trường chính cho chỉ tỷ lệ kèo bóng đá được chỉ định là tên cột hoặc thay thế dưới dạng các 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ỉ tỷ lệ kèo bóng đá hỗ trợ các chỉ tỷ lệ kèo bóng đá Multicolumn.

12330_12571trên (col)sẽ cho phép mệnh đềTrong đó trên (col) = 'jim'Để sử dụng chỉ tỷ lệ kèo bóng đá.

PostgreSQLCung cấp các phương thức chỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá của riêng họ, nhưng điều đó khá phức tạp.

KhiWHEREmệnh đề có mặt, AChỉ tỷ lệ kèo bóng đá một phầnđược tạo. Chỉ số một phần là một chỉ tỷ lệ kèo bóng đá chứa các tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá. 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ỉ tỷ lệ kèo bóng đá 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àImmutableHồi, 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õ. Để sử dụng chức năng do người dùng xác định trong biểu thức chỉ tỷ lệ kèo bóng đá hoặcWHEREmệ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ỉ tỷ lệ kèo bóng đá đượ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 tỷ lệ kèo bóng đá trùng lặp sẽ tạo ra lỗi.

Hạn chế bổ sung được áp dụng khi các chỉ tỷ lệ kèo bóng đá duy nhất được áp dụng cho các bảng được phân vùng; nhìn thấyTạo bảng.

đồng thời

Khi tùy chọn này được sử dụng,PostgreSQL15548_15828Chỉ tỷ lệ kèo bóng đá xây dựng đồng thời.

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

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

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. Lưu ý rằng không có gì đảm bảo rằng chỉ tỷ lệ kèo bóng đá hiện tại là bất cứ điều gì giống như tỷ lệ kèo bóng đá tiêu được tạo ra. Tên chỉ tỷ lệ kèo bóng đá được yêu cầu khiNếu không tồn tạiđược chỉ định.

Bao gồm

16716_16731Bao gồmmệnh đề Chỉ định danh sách các cột sẽ được bao gồm trong chỉ tỷ lệ kèo bóng đá làKhông KKYCột. Một cột không khóa không thể được sử dụng trong trình độ tìm kiếm quét chỉ tỷ lệ kèo bóng đá và nó bị coi thường cho các tỷ lệ kèo bóng đá đích của bất kỳ ràng buộc độc đáo hoặc loại trừ nào được thực thi bởi chỉ tỷ lệ kèo bóng đá. Tuy nhiên, quét chỉ có chỉ tỷ lệ kèo bóng đá có thể trả về nội dung của các cột không phải là mà không phải truy cập bảng của chỉ tỷ lệ kèo bóng đá, vì chúng có sẵn trực tiếp từ tỷ lệ kèo bóng đá nhập chỉ tỷ lệ kèo bóng đá. Do đó, việc bổ sung các cột không khóa cho phép sử dụng các lần quét chỉ có chỉ tỷ lệ kèo bóng đá cho các truy vấn mà không thể sử dụng chúng.

Thật khôn ngoan khi bảo thủ về việc thêm các cột không khóa vào một chỉ tỷ lệ kèo bóng đá, đặc biệt là các cột rộng. Nếu một bộ chỉ số vượt quá kích thước tối đa được phép cho loại chỉ tỷ lệ kèo bóng đá, việc chèn dữ liệu sẽ không thành công. Trong mọi trường hợp, các cột không khóa trùng lặp dữ liệu từ bảng của chỉ tỷ lệ kèo bóng đá và phình ra kích thước của chỉ tỷ lệ kèo bóng đá, do đó có khả năng làm chậm các tìm kiếm.

Các cột được liệt kê trongBao gồmmệnh đề không cần các lớp toán tử thích hợp; mệnh đề có thể bao gồm các cột có các loại dữ liệu không có các lớp toán tử được xác định cho một phương thức truy cập nhất định.

Biểu thức không được hỗ trợ như các cột bao gồm vì chúng không thể được sử dụng trong các lần quét chỉ có chỉ tỷ lệ kèo bóng đá.

Hiện tại, các phương thức truy cập chỉ tỷ lệ kèo bóng đá B và GIST hỗ trợ tính năng này. Trong B-Tree và Gist Indexes, các giá trị của các cột được liệt kê trongBao gồm18234_18380

tên

Tên của chỉ tỷ lệ kèo bóng đá sẽ được tạo. Không có tên lược đồ có thể được bao gồm ở đây; Chỉ tỷ lệ kèo bóng đá luôn được tạo trong cùng lược đồ với bảng cha mẹ của nó. Nếu tên bị bỏ qua,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ỉ tỷ lệ kèo bóng đá.

chỉ

Cho biết không tái sử dụng các chỉ tỷ lệ kèo bóng đá trên các phân vùng, nếu bảng được phân vùng. Mặc định là tái diễn.

Table_Name

Tên (có thể là sơ đồ) của bảng được lập chỉ tỷ lệ kèo bóng đá.

Phương pháp

Tên của phương thức chỉ tỷ lệ kèo bóng đá sẽ được sử dụng. Lựa chọn làBtree, Hash, Gist, spgist, Gin, Brinhoặc các phương thức truy cập do người dùng cài đặt nhưBloom. 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

20133_20375

đối chiếu

Tên của đối chiếu sẽ sử dụng cho chỉ tỷ lệ kèo bóng đá. Theo mặc định, chỉ tỷ lệ kèo bóng đá sử dụng đối chiếu được khai báo cho cột được lập chỉ tỷ lệ kèo bóng đá hoặc đối chiếu kết quả của biểu thức được lập chỉ tỷ lệ kèo bóng đá. Các chỉ tỷ lệ kèo bóng đá 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

21973_22035Tham số lưu trữ chỉ tỷ lệ kèo bóng đáĐể biết chi tiết.

TablePace_Name

Không gian bảng để tạo chỉ tỷ lệ kèo bóng đá. Nếu không được chỉ định,22468_22488được tư vấn hoặcTEMP_TABLESPACESĐối với các chỉ tỷ lệ kèo bóng đá trên bảng tạm thời.

vị ngữ

Biểu thức ràng buộc cho một chỉ tỷ lệ kèo bóng đá một phần.

Tham số lưu trữ chỉ tỷ lệ kèo bóng đá

Tùy chọnvới23022_23042Thông số lưu trữĐối với chỉ tỷ lệ kèo bóng đá. Mỗi phương thức chỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá là một phần trăm xác định mức độ đầy đủ của phương thức chỉ tỷ lệ kèo bóng đá sẽ cố gắng đóng gói các trang chỉ tỷ lệ kèo bóng đá. Đố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ỉ tỷ lệ kèo bóng đá ban đầu và cả khi mở rộng chỉ tỷ lệ kèo bóng đá ở 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ỉ tỷ lệ kèo bóng đá, 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ỉ tỷ lệ kèo bóng đá 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.

Biểu chỉ B-Tree Chấp nhận tham số này:

VACUUM_CLEANUP_INDEX_SCALE_FACTOR

giá trị per-index cho24924_24959.

Chỉ tỷ lệ kèo bóng đá GIST chấp nhận tham số này:

bộ đệm

25370_25434Phần 64.4.1được sử dụng để xây dựng chỉ tỷ lệ kèo bóng đá. 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ỉ tỷ lệ kèo bóng đá đạt đếnhiệu quả_cache_size. Mặc định làAuto.

Chỉ tỷ lệ kèo bóng đá 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 66.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 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 tỷ lệ kèo bóng đá nhập chỉ tỷ lệ kèo bóng đá đang chờ xử lý, nhưng bản thân nó không tự xóa các tỷ lệ kèo bóng đá trước đó. Bạn có thể muốnVACUUMBảng hoặc cuộc gọigin_clean_pending_listHàm sau đó để đảm bảo danh sách đang chờ xử lý được làm trống.

27712_27736

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

BrinChỉ tỷ lệ kèo bóng đá Chấp nhận các tham số khác nhau:

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 tỷ lệ kèo bóng đá của ABrinindex (xemPhần 67.1Để biết thêm chi tiết). Mặc định là128.

Autosummarize

29038_29169Phần 67.1.1Để biết thêm chi tiết. Mặc định làTẮT.

Chỉ tỷ lệ kèo bóng đá xây dựng đồng thời

Tạo một chỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá chống lại ghi và thực hiện toàn bộ chỉ tỷ lệ kèo bóng đá xây dựng 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ỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá và ngay cả đối với các bảng nhỏ hơn, bản dựng chỉ tỷ lệ kèo bóng đá 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.

PostgreSQLHỗ trợ các chỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá. 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ỉ tỷ lệ kèo bóng đá để 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ỉ tỷ lệ kèo bóng đá tiêu chuẩn và mất nhiều thời gian hơn để hoàn thành. Tuy nhiên, vì nó cho phép các hoạt động bình thường tiếp tục trong khi chỉ tỷ lệ kèo bóng đá được xây dựng, phương pháp này rất hữu ích để thêm các chỉ tỷ lệ kèo bóng đá mới trong môi trường sản xuất. Tất nhiên, tải thêm CPU và I/O được áp đặt bởi việc tạo chỉ tỷ lệ kèo bóng đá có thể làm chậm các hoạt động khác.

Trong bản dựng chỉ tỷ lệ kèo bóng đá đồng thời, chỉ tỷ lệ kèo bóng đá thực sự được nhập vào danh tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá 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 sẽ 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ỉ tỷ lệ kèo bóng đá có thể được đánh dấu sẵn sàng để sử dụng vàTạo chỉ tỷ lệ kèo bóng đálệnh chấm dứt. Tuy nhiên, ngay cả sau đó, chỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá.

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ỉ tỷ lệ kèo bóng đá duy nhất,Tạo chỉ tỷ lệ kèo bóng đáLệnh sẽ thất bại nhưng bỏ lại phía saukhông hợp lệINDEX. Chỉ số này sẽ bị bỏ qua cho các tỷ lệ kèo bóng đá đí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ỉ tỷ lệ kèo bóng đá như32550_32559:

postgres =# \ d tab
       Bảng "public.tab"
 Cột |  Loại | Đối chiếu | Vô hiệu | Mặc định 
--------+---------+-----------+----------+---------
 col | Số nguyên |           |          | 
Chỉ tỷ lệ kèo bóng đá:
    "idx" btree (col) không hợp lệ

Phương pháp khôi phục được đề xuất trong các trường hợp như vậy là bỏ chỉ tỷ lệ kèo bóng đá và thử lại để thực hiệnTạo chỉ tỷ lệ kèo bóng đá đồng thời. (Một khả năng khác là xây dựng lại chỉ tỷ lệ kèo bóng đá bằngIndex Reindex đồng thời).

Một cảnh báo khác khi xây dựng một chỉ tỷ lệ kèo bóng đá 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 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. Ngoài ra, nếu một lỗi xảy ra trong lần quét thứ hai,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 đó.

33673_33892

Các bản dựng chỉ tỷ lệ kèo bóng đá thông thường cho phép các bản dựng chỉ tỷ lệ kèo bóng đá thông thường khác trên cùng một bảng xảy ra đồng thời, nhưng chỉ có một bản dựng chỉ tỷ lệ kèo bóng đá đồ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, việc sửa đổi lược đồ của bảng không được phép trong khi chỉ tỷ lệ kèo bóng đá đang được xây dựng. Một điểm khác biệt khác là một thông thườngTạo chỉ tỷ lệ kèo bóng đáCó thể thực hiện lệnh trong một khối giao dịch, nhưngTạo chỉ tỷ lệ kèo bóng đá đồng thờikhông thể.

Xây dựng đồng thời cho các chỉ tỷ lệ kèo bóng đá trên các bảng được phân vùng hiện không được hỗ trợ. Tuy nhiên, bạn có thể đồng thời xây dựng chỉ tỷ lệ kèo bóng đá trên từng phân vùng riêng lẻ và cuối cùng tạo ra chỉ tỷ lệ kèo bóng đá được phân vùng không liên tục để giảm thời gian ghi vào bảng được phân vùng sẽ bị khóa. Trong trường hợp này, việc xây dựng chỉ tỷ lệ kèo bóng đá được phân vùng là một hoạt động chỉ có siêu dữ liệu.

Ghi chú

34854_34860Chương 11Để biết thông tin về khi nào các chỉ tỷ lệ kèo bóng đá 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.

Hiện tại, chỉ có các phương thức B-Tree, Gist, Gin và Brin chỉ hỗ trợ các chỉ tỷ lệ kèo bóng đá 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ỉ có B-cây hiện đang hỗ trợ các chỉ tỷ lệ kèo bóng đá duy nhất.

ANLớp toán tửcó thể được chỉ định cho mỗi cột của một chỉ tỷ lệ kèo bóng đá. Lớp toán tử xác định các toán tử sẽ được sử dụng bởi chỉ tỷ lệ kèo bóng đá cho cột đó. Ví dụ: chỉ tỷ lệ kèo bóng đá B-Tree trên các số nguyên bốn byte sẽ sử dụngINT4_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. Trong thực tế, lớp toán tử mặc định cho kiểu dữ liệu của cột thường là đủ. Điểm chính của việc có các lớp toán tử là đối với một số loại dữ liệu, có thể có nhiều hơn một thứ tự có ý nghĩa. Ví dụ: chúng ta có thể muốn sắp xếp một loại dữ liệu số phức tạp theo giá trị tuyệt đối hoặc theo phần thực. Chúng tôi có thể làm điều này bằng cách xác định hai lớp toán tử cho kiểu dữ liệu và sau đó chọn lớp thích hợp khi tạo một chỉ tỷ lệ kèo bóng đá. Thêm thông tin về các lớp toán tử ởPhần 11.10và trongPhần 37.16.

KhiTạo chỉ tỷ lệ kèo bóng đáđược gọi trên bảng được phân vùng, hành vi mặc định là tái phân biệt tất cả các phân vùng để đảm bảo tất cả chúng đều có các chỉ tỷ lệ kèo bóng đá phù hợp. Mỗi phân vùng được kiểm tra trước tiên để xác định xem một chỉ tỷ lệ kèo bóng đá tương đương đã tồn tại và nếu vậy, chỉ tỷ lệ kèo bóng đá đó sẽ được đính kèm dưới dạng chỉ tỷ lệ kèo bóng đá phân vùng cho chỉ tỷ lệ kèo bóng đá được tạo, sẽ trở thành chỉ tỷ lệ kèo bóng đá gốc của nó. Nếu không có chỉ tỷ lệ kèo bóng đá phù hợp tồn tại, một chỉ tỷ lệ kèo bóng đá mới sẽ được tạo và tự động đính kèm; Tên của chỉ tỷ lệ kèo bóng đá mới trong mỗi phân vùng sẽ được xác định như thể không có tên chỉ tỷ lệ kèo bóng đá nào được chỉ định trong lệnh. NếuchỉTùy chọn được chỉ định, không có đệ quy được thực hiện và chỉ tỷ lệ kèo bóng đá được đánh dấu không hợp lệ. (Chỉ số thay đổi ... Đính kèm phân vùng37251_37394Tạo bảng ... phân vùng củaSẽ tự động có chỉ tỷ lệ kèo bóng đá phù hợp, bất kểchỉđược chỉ định.

37574_37668ASC, 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ỉ tỷ lệ kèo bóng đá. Vì một chỉ tỷ lệ kèo bóng đá đượ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 đơnDescINDEX - Đặt hàng sắp xếp đó đã có sẵn với một chỉ tỷ lệ kèo bóng đá thông thường. Giá trị của các tùy chọn này là các chỉ tỷ lệ kèo bóng đá 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ấp38464_38501Mạnhnulls Sắp xếp cao, trong các truy vấn phụ thuộc vào các chỉ tỷ lệ kèo bóng đá để 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ỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá này.

Đối với hầu hết các phương thức chỉ tỷ lệ kèo bóng đá, tốc độ tạo một chỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá, 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.

POSTGRESQLCó thể xây dựng các chỉ tỷ lệ kèo bóng đá trong khi tận dụng nhiều CPU để xử lý các hàng bảng nhanh hơn. Tính năng này được gọi làBản dựng chỉ tỷ lệ kèo bóng đá song song. Đối với các phương thức chỉ tỷ lệ kèo bóng đá hỗ trợ các chỉ tỷ lệ kèo bóng đá xây dựng song song (hiện tại, chỉ b-cây),bảo trì_work_memChỉ định lượng bộ nhớ tối đa có thể được sử dụng bởi mỗi hoạt động xây dựng chỉ tỷ lệ kèo bóng đá, bất kể có bao nhiêu quy trình công nhân được bắt đầu. Nói chung, một mô hình chi phí tự động xác định số lượng quy trình công nhân nên được yêu cầu, nếu có.

Bản dựng chỉ tỷ lệ kèo bóng đá song song có thể được hưởng lợi từ việc tăngbảo trì_work_memTrong đó bản dựng chỉ số nối tiếp tương đương sẽ thấy ít hoặc không có lợi ích. Lưu ý rằngbảo trì_work_memCó thể ảnh hưởng đến số lượng quy trình công nhân được yêu cầu, vì công nhân song song phải có ít nhất một32MBchia sẻ tổng sốbảo trì_work_memNgân sách. Cũng phải có một cái còn lại32MB40686_4073040817_40851có thể cho phép nhiều công nhân được sử dụng hơn, điều này sẽ giảm thời gian cần thiết để tạo chỉ tỷ lệ kèo bóng đá, miễn là bản dựng chỉ tỷ lệ kèo bóng đá chưa bị ràng buộc I/O. Tất nhiên, cũng cần có đủ công suất CPU mà nếu không nằm trong tình trạng nhàn rỗi.

Đặt giá trị chosong song_workersViaBảng thay đổitrực tiếp kiểm soát số lượng quy trình công nhân song song sẽ được yêu cầu bởi ATạo chỉ tỷ lệ kèo bóng đáso với bảng. Điều này bỏ qua hoàn toàn mô hình chi phí và ngăn chặnbảo trì_work_memTừ việc ảnh hưởng đến số lượng công nhân song song được yêu cầu. Cài đặtsong song_workersđến 0 quaBảng thay đổiSẽ vô hiệu hóa các bản dựng chỉ tỷ lệ kèo bóng đá song song trên bảng trong mọi trường hợp.

TIP

Bạn có thể muốn đặt lạisong song_workersSau khi đặt nó như một phần của việc điều chỉnh bản dựng chỉ tỷ lệ kèo bóng đá. Điều này tránh các thay đổi vô ý đối với các kế hoạch truy vấn, vìsong song_workersảnh hưởngtất cảQuét bảng song song.

trong khiTạo chỉ tỷ lệ kèo bóng đávớiđồng thờiTùy chọn hỗ trợ các bản dựng song song mà không có giới hạn đặc biệt, chỉ quét bảng đầu tiên thực sự được thực hiện song song.

Sử dụngDrop IndexĐể xóa một chỉ tỷ lệ kèo bóng đá.

Giống như bất kỳ giao dịch dài nào,Tạo chỉ tỷ lệ kèo bóng đáTrên bảng có thể ảnh hưởng đến bộ dữ liệu nào có thể được loại bỏ bằng cách đồng thờiNút hútTrên bất kỳ bảng nào khác.

Phát hành trướcPostgreSQLcũng có phương thức chỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá42998_43022Sử dụng gist, Để đơn giản hóa việc chuyển đổi cơ sở dữ liệu cũ thành GIST.

Ví dụ

Để tạo chỉ tỷ lệ kèo bóng đá B-cây duy nhất trên cộtTiêu đềTrong bảngPhim:

Tạo chỉ tỷ lệ kèo bóng đá độc đáo Title_idx trên phim (Tiêu đề);

Để tạo chỉ tỷ lệ kèo bóng đá B-cây duy nhất trên cộtTiêu đềVới các cột bao gồmGiám đốcXếp hạngTrong bảngPhim:

43691_43769

Để tạo một chỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá, vì vậy hệ thống sẽ chọn một tên, thường làfilms_lower_idx.)

Để tạo một chỉ tỷ lệ kèo bóng đá với đối chiếu không mặc định:

Tạo chỉ tỷ lệ kèo bóng đá Title_idx_German trên phim (tiêu đề đối chiếu "DE_DE");

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

Tạo chỉ tỷ lệ kèo bóng đá TITT_IDX_NULLS_LOW trên phim (Tiêu đề đầu tiên);

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

Tạo chỉ tỷ lệ kèo bóng đá độc đáo Title_idx trên phim (Tiêu đề) với (fillfactor = 70);

Để tạo AGinChỉ tỷ lệ kèo bóng đá với các bản cập nhật nhanh bị tắt:

44784_44874

Để tạo một chỉ tỷ lệ kèo bóng đá trên cộtCODETrong bảngPhimvà có chỉ tỷ lệ kèo bóng đá nằm trong không gian bảngIndexSpace:

Tạo index code_idx trên films (mã) không gian bảng chỉ tỷ lệ kèo bóng đá;

Để tạo chỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá mà không khóa ghi vào bảng:

Tạo chỉ tỷ lệ kèo bóng đá đồng thời sales_quantity_index trên sales_table (số lượng);

Tương thích

Tạo chỉ tỷ lệ kèo bóng đáPOSTGRESQLMở rộng ngôn ngữ. Không có quy định cho các chỉ tỷ lệ kèo bóng đá trong tiêu chuẩn SQL.