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 bóng đá cúp c2

Tạo chỉ kèo bóng đá cúp c2 - Xác định chỉ kèo bóng đá cúp c2 mới

Synopsis

Tạo [duy nhất] chỉ kèo bóng đá cúp c2 [đồ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ị11402_11436TableSpace_Name]
    [ Ở ĐÂUvị ngữ]

Mô tả

Tạo chỉ kèo bóng đá cúp c2Xây dựng một chỉ kèo bóng đá cúp c2 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 đá cúp c2 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).

11926_12128

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

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

KhiWHEREmệnh đề có mặt, AChỉ kèo bóng đá cúp c2 một phầnđược tạo. Chỉ số một phần là một chỉ kèo bóng đá cúp c2 chứa các kèo bóng đá cúp c2 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 đá cúp c2 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 bóng đá cúp c2 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 bóng đá cúp c2. 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 đá cúp c2 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àMạnhbất biến, 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ỉ kèo bóng đá cúp c2 hoặcWHEREmệnh đề, hãy nhớ đánh dấu hàm bất biến khi bạn kèo bóng đá cúp c2 nó.

tham số

độc đáo

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

đồng thời

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

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

tên

16134_16302PostgreSQLChọ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 đá cúp c2.

Table_Name

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

Phương pháp

Tên của phương thức chỉ kèo bóng đá cúp c2 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

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. Tuy nhiên, dấu ngoặc đơn có thể được bỏ qua nếu biểu thức có dạng gọi hàm.

đối chiếu

17730_18032

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 LAST

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 bóng đá cúp c2. Nhìn thấyTham số lưu trữ chỉ kèo bóng đá cúp c2Để biết chi tiết.

TableSpace_Name

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

vị ngữ

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

Tham số lưu trữ chỉ kèo bóng đá cúp c2

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

Buffering

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

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

gin_pending_list_limit

23374_23383gin_pending_list_limitTham số. Giá trị này được chỉ định trong kilobyte.

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

Autosummarize

24174_24301

Chỉ kèo bóng đá cúp c2 xây dựng đồng thời

Tạo một chỉ kèo bóng đá cúp c2 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 đá cúp c2 chống lại ghi và thực hiện toàn bộ chỉ kèo bóng đá cúp c2 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 đá cúp c2 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 bóng đá cúp c2 và ngay cả đối với các bảng nhỏ hơn, bản dựng chỉ kèo bóng đá cúp c2 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ỉ kèo bóng đá cúp c2 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ọnTạo chỉ kèo bóng đá cúp c2. 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 đá cúp c2 để 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 đá cúp c2 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ỉ kèo bóng đá cúp c2 được xây dựng, phương pháp này rất hữu ích để thêm các chỉ kèo bóng đá cúp c2 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ỉ kèo bóng đá cúp c2 có thể làm chậm các hoạt động khác.

25999_26373Chương 1326473_26662Tạo chỉ kèo bóng đá cúp c2lệnh chấm dứt. Tuy nhiên, ngay cả sau đó, chỉ kèo bóng đá cúp c2 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 đá cúp c2.

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 bóng đá cúp c2 duy nhất,Tạo chỉ kèo bóng đá cúp c2Lệnh sẽ thất bại nhưng bỏ lại phía sauHồikhông hợp lệKhănINDEX. Chỉ số này sẽ bị bỏ qua cho các kèo bóng đá cúp c2 đí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 bóng đá cúp c2 nhưkhông hợp lệ:

27486_27718

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 đá cúp c2 và thử lại để thực hiệnTạo chỉ kèo bóng đá cúp c2 đồng thời. (Một khả năng khác là xây dựng lại chỉ kèo bóng đá cúp c2 bằngReindex. Tuy nhiên, vìReindex28013_28096

Một cảnh báo khác khi xây dựng một chỉ kèo bóng đá cúp c2 duy nhất đồng thời là ràng buộc tính độc đáo đã đượ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,Hồikhông hợp lệINDEX tiếp tục thực thi ràng buộc tính độc đáo của nó sau đó.

28648_28867

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

Ghi chú

xemChương 1129499_29628

Hiện tại, chỉ có các phương pháp B-Tree, Gist, Gin và Brin chỉ có các chỉ kèo bóng đá cúp c2 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ỉ kèo bóng đá cúp c2 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 đá cúp c2. 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 đá cúp c2 cho cột đó. Ví dụ: chỉ kèo bóng đá cúp c2 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ỉ kèo bóng đá cúp c2. Thêm thông tin về các lớp toán tử ởPhần 11.9và trongPhần 37,14.

Đối với các phương thức chỉ kèo bóng đá cúp c2 hỗ trợ quét đã đặt hàng (hiện tại, chỉ có b-cây), 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 đá cúp c2. Vì một chỉ kèo bóng đá cúp c2 đượ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 đá cúp c2 - Đặt hàng sắp xếp đó đã có sẵn với một chỉ kèo bóng đá cúp c2 thông thường. Giá trị của các tùy chọn này là các chỉ kèo bóng đá cúp c2 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ấpHàngHành vi, thay vì mặc địnhnulls Sắp xếp cao, trong các truy vấn phụ thuộc vào các chỉ kèo bóng đá cúp c2 để 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 đá cúp c2 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 bóng đá cúp c2 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 bóng đá cúp c2 này.

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

Phát hành trướcPOSTGRESQLcũng có phương thức chỉ kèo bóng đá cúp c2 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 bóng đá cúp c2sẽ 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.

ví dụ

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

Tạo chỉ kèo bóng đá cúp c2 độc đáo Title_idx trên phim (Tiêu đề);

Để tạo một chỉ kèo bóng đá cúp c2 trên biểu thứcHạ (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 đá cúp c2 trên phim ((thấp hơn (tiêu đề)));

34022_34124films_lower_idx.)

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

Tạo chỉ kèo bóng đá cúp c2 Title_idx_German trên phim (tiêu đề đối chiếu "DE_DE");

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

Tạo chỉ kèo bóng đá cúp c2 TITT_IDX_NULLS_LOW trên phim (Tiêu đề NULLS đầu tiên);

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

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

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

34770_34858

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

Để tạo chỉ kèo bóng đá cúp c2 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 đá cúp c2 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 bóng đá cúp c2 mà không cần khóa ghi vào bảng:

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

Tương thích

35766_35780là mộtPostgreSQLMở rộng ngôn ngữ. Không có quy định cho các chỉ kèo bóng đá cúp c2 trong tiêu chuẩn SQL.

Xem thêm

INDEX, Drop Index