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
9352_9423
Bạn có thể muốn xem cùng cách đọc kèo bóng đá trang chohiện tạiPhiên bản hoặc cách đọc kèo bóng đá trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

Tạo Chỉ cách đọc kèo bóng đá

tên

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

Synopsis

Tạo [duy nhất] chỉ cách đọc kèo bóng đá [đồng thờ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ỉ cách đọc kèo bóng đáXây dựng một chỉ cách đọc kèo bóng đá trên (các) cột được chỉ định của bảng được chỉ định. Chỉ cách đọc kèo bóng đá là 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ỉ cách đọc kèo bóng đá được chỉ định là tên cột, hoặc thay vào đó là biểu thức được viết trong ngoặc đơn. Nhiều Các trường có thể được chỉ định nếu phương thức chỉ cách đọc kèo bóng đá hỗ trợ nhiều trường hợp chỉ cách đọc kèo bóng đá.

Trường chỉ cách đọc kèo bóng đá 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 của Dữ liệu cơ bản. Ví dụ: một chỉ cách đọc kèo bóng đá được tính toán trêntrên (col)sẽ cho phép mệnh đềTrong đó trên (col) = 'jim'Để sử dụng chỉ cách đọc kèo bóng đá.

PostgreSQLCung cấp chỉ cách đọc kèo bóng đá Phương pháp B-Tree, Hash, Gist, Sp-Gist và Gin. Người dùng cũng có thể Xác định các phương thức chỉ cách đọc kèo bóng đá của riêng họ, nhưng đó là công bằng phức tap.

Khitrong đómệnh đề có mặt, AChỉ số cách đọc kèo bóng đá phầnđược tạo. Một phần Chỉ cách đọc kèo bóng đá là một chỉ cách đọc kèo bóng đá chứa các cách đọc kèo bóng đá nhập chỉ cho một phần của một bảng, thường là một phần hữu ích hơn cho việc lập chỉ cách đọc kèo bóng đá hơn phần còn lại của bàn. Ví dụ: nếu bạn có một bảng chứa cả các đơn đặt hàng hóa đơn và không được thanh toán trong đó các đơn đặt hàng chiếm một phần nhỏ của tổng số bảng và điều đó 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ỉ cách đọc kèo bóng đá trên phần đó. Một ứng dụng khả thi khác là sử dụngWHEREvớiđộc đáo13322_13379Phần 11.8cho 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ỉ cách đọc 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ỉ cách đọc 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 cách đọc kèo bóng đá định nghĩa chỉ số phải là"Immutable", nghĩa là kết quả của họ phải chỉ phụ thuộc vào lập luận của họ và không bao giờ vào bên ngoài ảnh hưởng (chẳng hạn như nội dung của bảng khác hoặc hiện tại thời gian). Hạn chế này đảm bảo rằng hành vi của chỉ cách đọc kèo bóng đá là được xác định rõ. Để sử dụng chức năng do người dùng xác định trong một chỉ cách đọc kèo bóng đá biểu thức hoặcWHEREmệnh đề, hãy nhớ Đánh dấu chức năng bất biến khi bạn cách đọc kèo bóng đá 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ỉ cách đọc 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. Cố gắng chèn hoặc cập nhật dữ liệu điều này sẽ dẫn đến các cách đọc kèo bóng đá trùng lặp sẽ tạo ra một lỗi.

đồng thời

Khi tùy chọn này được sử dụng,PostgreSQLSẽ xây dựng chỉ cách đọc kèo bóng đá mà không cần bất kỳ ổ khóa nào ngăn chặn các phần chèn đồng thời, cập nhật hoặc xóa trên bảng; trong khi một chỉ số tiêu chuẩn xây dựng khóa ghi (nhưng không đọc) trên bảng cho đến khi Nó đã xong. Có một số cảnh báo để biết khi nào Sử dụng tùy chọn này - XemTòa nhà Chỉ cách đọc kèo bóng đá đồng thời.

tên

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

Table_Name

Tên (có thể được lập chỉ cách đọc kèo bóng đá.

Phương pháp

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

Cột_name

Tên của cách đọc kèo bóng đá cột của bảng.

Biểu thức

cách đọc kèo bóng đá biểu thức dựa trên cách đọc kèo bóng đá hoặc nhiều cột của bảng. Biểu thức thường phải được viết với xung quanh Điểm số, 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ó biểu mẫu của cách đọc kèo bóng đá cuộc gọi chức năng.

đối chiếu

Tên của đối chiếu sẽ sử dụng cho chỉ cách đọc kèo bóng đá. Qua mặc định, chỉ cách đọc kèo bóng đá sử dụng đối chiếu được khai báo cho cột được lập chỉ cách đọc kèo bóng đá hoặc đối chiếu kết quả của Biểu thức được lập chỉ cách đọc kèo bóng đá. Chỉ cách đọc kèo bóng đá với không mặc định đối chiếu có thể hữu ích cho các truy vấn liên quan đến 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 cách đọc kèo bóng đá lớp toán tử. Xem bên dưới cho 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 khiDESCIS đượ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ỉ cách đọc kèo bóng đá. Nhìn thấyINDEX Thông số lưu trữĐể biết chi tiết.

TableSpace_Name

Không gian bảng để tạo chỉ cách đọc kèo bóng đá. Nếu không được chỉ định,default_tablespaceđược tư vấn hoặcTEMP_TABLESPACESĐối với các chỉ cách đọc 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ỉ cách đọc kèo bóng đá một phần.

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

Tùy chọnvớimệnh đề Chỉ địnhtham số lưu trữ19416_19586

fillfactor

19712_20666

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

bộ đệm

Xác định xem kỹ thuật xây dựng bộ đệm được mô tả trongPhần 53.3.1được sử dụng để xây dựng chỉ cách đọc 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 đã biến trên khi bay một khi kích thước chỉ cách đọc kèo bóng đá đạt đếnhiệu quả_cache_size. Mặc định là​​Auto.

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

Fastupdate

Cài đặt này kiểm soát việc sử dụng bản cập nhật nhanh Kỹ thuật được mô tả trongPhần 55.3.1. Nó là cách đọc kèo bóng đá 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 lần chèn trong tương lai Từ việc đi vào danh sách các cách đọc kèo bóng đá nhập chỉ cách đọc kèo bóng đá đang chờ xử lý, nhưng bản thân nó không tự làm sạch các cách đọc kèo bóng đá trước. Bạn có thể muốnVACUUMThe bảng sau đó để đảm bảo danh sách đang chờ xử lý là trống.

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

Tạo một chỉ cách đọc kèo bóng đá có thể can thiệp vào hoạt động thường xuyên của A cơ sở dữ liệu. Thông thườngPostgreSQLKhóa bảng để được lập chỉ cách đọc kèo bóng đá chống lại ghi và thực hiện toàn bộ chỉ cách đọc kèo bóng đá xây dựng với một lần quét bảng. Khác giao dịch 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 hàng trong bảng, chúng sẽ chặn Cho đến khi bản dựng chỉ số kết thúc. Điều này có thể nghiêm trọng Hiệu ứng nếu hệ thống là cơ sở dữ liệu sản xuất trực tiếp. Rất lớn bảng có thể mất nhiều giờ để được lập chỉ cách đọc kèo bóng đá và thậm chí đối với nhỏ hơn bảng, bản dựng chỉ cách đọc 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ợ Chỉ số xây dựng mà không khóa viết. Phương pháp này là được gọi bằng cách chỉ địnhđồng thờiTùy chọnTạo chỉ cách đọc kèo bóng đá. Khi này Tùy chọn được sử dụng,PostgreSQL24078_24639

24650_25048Chương 1325080_25192Tạo chỉ cách đọc kèo bóng đálệnh chấm dứt. Tuy nhiên, ngay cả sau đó, chỉ số có thể không có thể sử dụng ngay cho các truy vấn: Trong trường hợp xấu nhất, nó không thể là được sử dụng miễn là các giao dịch tồn tại trước khi bắt đầu chỉ cách đọc kèo bóng đá xây dựng.

Nếu có vấn đề phát sinh trong khi quét bảng, chẳng hạn như A Vi phạm độc đáo trong một chỉ cách đọc kèo bóng đá duy nhất,Tạo chỉ cách đọc kèo bóng đáLệnh sẽ thất bại nhưng bỏ lại phía sau MỘT"không hợp lệ"INDEX. Chỉ số này sẽ bị bỏ qua vì cách đọc kèo bóng đá đích truy vấn vì nó có thể là 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ỉ cách đọc kèo bóng đá 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ỉ cách đọc kèo bóng đá:
    "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ỉ cách đọc kèo bóng đá và thử lại để thực hiệnTạo chỉ cách đọc kèo bóng đá Đồng thời. (cách đọc kèo bóng đá khả năng khác là xây dựng lại chỉ số vớiReindex. Tuy nhiên, vìReindex26491_26578

26589_27025"không hợp lệ"Chỉ cách đọc kèo bóng đá tiếp tục thực thi nó Ràng buộc duy nhất sau đó.

Bản dựng đồng thời các chỉ cách đọc kèo bóng đá biểu thức và chỉ cách đọc kèo bóng đá một phần được hỗ trợ. Lỗi xảy ra trong việc đánh giá những lỗi này Biểu thức 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.

27388_27695Tạo chỉ cách đọc kèo bóng đálệnh có thể được thực hiện trong cách đọc kèo bóng đá Khối giao dịch, nhưngTạo chỉ cách đọc kèo bóng đá Đồng thờikhông thể.

ghi chú

xemChương 11Để biết thông tin về khi nào các chỉ cách đọc kèo bóng đá có thể được sử dụng, khi chúng không được sử dụng và trong những tình huống cụ thể mà chúng có thể hữu ích.

THẬN TRỌNG

Hoạt động chỉ cách đọc kèo bóng đá băm hiện không được Wal-logged, vì vậy Các chỉ cách đọc kèo bóng đá băm có thể cần được xây dựng lại vớiReindexSau khi gặp sự cố cơ sở dữ liệu nếu có là những thay đổi bất thành văn. Ngoài ra, các thay đổi đối với các chỉ cách đọc kèo bóng đá băm là không được sao chép qua phát trực tuyến hoặc sao chép dựa trên tệp Sau bản sao lưu cơ sở ban đầu, vì vậy họ đưa ra câu trả lời sai để truy vấn mà sau đó sử dụng chúng. Vì những lý do này, Việc sử dụng chỉ cách đọc kèo bóng đá băm hiện đang được nản lòng.

Hiện tại, chỉ có các phương thức B-Tree, GIST và GIN. Chỉ số 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ợ chỉ cách đọc 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ỉ cách đọc 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ỉ cách đọc kèo bóng đá cho cột đó. Ví dụ, a Chỉ cách đọc kèo bóng đá B-Tree trên số nguyên bốn byte sẽ sử dụngINT4_OPSlớp; Lớp toán tử này bao gồm Các chức năng so sánh cho 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à hợp 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 đặt hàng. Ví dụ: chúng tôi có thể muốn sắp xếp một số phức tạp Kiểu dữ liệu theo giá trị tuyệt đối hoặc 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ỉ cách đọc kèo bóng đá. Thêm thông tin Giới thiệu về các lớp toán tử đang ởPhần 11.9và trongPhần 35.14.

Đối với các phương thức chỉ cách đọc kèo bóng đá hỗ trợ quét đã đặt hàng (hiện tại, chỉ B-cây), mệnh đề 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ỉ cách đọc kèo bóng đá. Kể từ một Chỉ số được đặt hàng có thể được quét về phía trước hoặc lùi, nó là Thông thường không hữu ích để tạo một cột đơnDescINDEX - Đơn hàng sắp xếp đó đã Có sẵn với một chỉ số thông thường. Giá trị của các tùy chọn này là rằng các chỉ cách đọc kèo bóng đá Multicolumn có thể được tạo ra phù hợp với loại Đặt hàng đượ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ỉ cách đọc kèo bóng đá để tránh sắp xếp các bước.

Đối với hầu hết các phương thức chỉ cách đọc kèo bóng đá, tốc độ tạo chỉ cách đọc kèo bóng đá là 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ỉ cách đọc kèo bóng đá, vì vậy miễn là bạn không làm cho nó lớn hơn số lượng bộ nhớ thực sự Có sẵn, sẽ khiến máy hoán đổi.

Sử dụngDrop IndexĐể loại bỏ một chỉ cách đọc kèo bóng đá.

Phát hành trướcPostgreSQLcũng có phương thức chỉ cách đọc kèo bóng đá r-cây. Phương pháp này đã bị xóa Bởi 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ỉ cách đọc kèo bóng đásẽ giải thích nó làSử dụng GIST, để đơn giản hóa việc chuyển đổi cũ cơ sở dữ liệu cho gist.

Ví dụ

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

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

Để tạo một chỉ cách đọc kèo bóng đá trên biểu thứcthấp hơn (tiêu đề), cho phép không nhạy cảm trường hợp hiệu quả Tìm kiếm:

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

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

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

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

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

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

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

Để cách đọc kèo bóng đá AGinChỉ cách đọc kèo bóng đá với Cập nhật nhanh bị tắt:

33364_33454

Để tạo một chỉ cách đọc kèo bóng đá trên cộtCodeTrong bảngPhimvà có chỉ cách đọc kèo bóng đá cư trú trong không gian bảngIndexSpace:

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

Để tạo chỉ cách đọc 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 việc chuyển đổi chức năng:

Tạo chỉ cách đọc 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;

34107_34170

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

Tương thích

Tạo chỉ cách đọc kèo bóng đá34425_34433PostgreSQLMở rộng ngôn ngữ. Không có Quy định cho các chỉ cách đọc kèo bóng đá trong tiêu chuẩn SQL.