3295_3437hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / 5063_5070
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 kèo bóng đá euro trang chohiện tạiPhiên bản hoặc kèo bóng đá euro 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 đá euro

tên

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

Synopsis

Tạo [duy nhất] chỉ kèo bóng đá euro [đồng thời]têntrênBảng[sử dụngPhương pháp]
    (Cột| (Biểu thức) [opClass] [ASC | Desc] [nulls đầu tiên | CUỐI CÙNG  ] [, ...] )
    [ VỚI (Storage_Parameter=giá trị[, ...])]]
    [Không gian bảngkhông gian bảng]
    [ Ở ĐÂUvị ngữ]

Mô tả

Tạo chỉ kèo bóng đá euroXây dựng một chỉ kèo bóng đá eurotêntrên bảng được chỉ định. 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).

Trường chính cho chỉ kèo bóng đá euro đượ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ỉ kèo bóng đá euro hỗ trợ nhiều trường hợp chỉ kèo bóng đá euro.

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

PostgreSQLcung cấp chỉ kèo bóng đá euro Phương pháp B-Tree, Hash, Gist và Gin. Người dùng cũng có thể xác định Các phương thức chỉ kèo bóng đá euro riêng, nhưng điều đó khá phức tạp.

12654_12665WHEREmệnh đề có mặt, AChỉ số kèo bóng đá euro phầnđược tạo. Một phần Chỉ kèo bóng đá euro là một chỉ kèo bóng đá euro chứa các kèo bóng đá euro 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ỉ kèo bóng đá euro 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ỉ kèo bóng đá euro trên phần đó. Một ứng dụng khả thi khác là sử dụngWHEREvớiđộc đáo13312_13369Phầ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ỉ 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.

13813_13881"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ỉ kèo bóng đá euro 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ỉ kèo bóng đá euro biểu thức hoặcWHEREmệnh đề, hãy nhớ Đánh dấu chức năng bất biến khi bạn kèo bóng đá euro nó.

tham số

độc đáo

14522_14793

đồng thờ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 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ỉ kèo bóng đá euro đồng thời.

tên

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; Chỉ kèo bóng đá euro luôn được tạo trong cùng một lược đồ làm bảng cha mẹ của nó.

Bảng

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

Phương pháp

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, gist16110_16115. Phương thức mặc định làBtree.

Cột

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

Biểu thức

kèo bóng đá euro biểu thức dựa trên kèo bóng đá euro 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 kèo bóng đá euro cuộc gọi chức năng.

opClass

Tên của kèo bóng đá euro 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 khiDesc17302_17326

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 bóng đá euro. Xem bên dưới để biết chi tiết.

không gian bảng

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_TABLESPACESĐối với các chỉ kèo bóng đá euro 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 đá euro một phần.

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

Thevớimệnh đề có thể chỉ địnhThông số lưu trữcho các chỉ kèo bóng đá euro. Mỗi Phương pháp chỉ kèo bóng đá euro có thể có bộ lưu trữ được phép riêng tham số. Các phương thức chỉ kèo bóng đá euro tích hợp đều chấp nhận một tham số:

fillfactor

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

Chỉ số xây dựng đồng thời

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 A cơ sở dữ liệu. Thông thườngPostgreSQL20204_20774

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ỉ kèo bóng đá euro21021_21055PostgreSQLPhả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ử dụng chỉ số để chấm dứt. Do đó, phương pháp này đòi hỏi toàn bộ hơn làm việc hơn là một chỉ số tiêu chuẩn xây dựng 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 đá euro được xây dựng, phương pháp này rất hữu ích cho thêm các chỉ kèo bóng đá euro mới trong một môi trường sản xuất. Tất nhiên, Tải thêm CPU và I/O do việc tạo chỉ kèo bóng đá euro có thể làm chậm các hoạt động khác.

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 các danh kèo bóng đá euro hệ thống trong một giao dịch, sau đó là hai bảng Quét xảy ra trong giao dịch thứ hai và thứ ba. Nếu một vấn đề phát sinh trong khi quét bảng, chẳng hạn như 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 kèo bóng đá euro đích truy vấn vì nó có thể không đầy đủ; Tuy nhiên nó vẫn sẽ sử dụng chi phí cập nhật. ThePSQL \ DLệnh sẽ đánh dấu một chỉ kèo bóng đá euro 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 bóng đá euro:
    "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 bóng đá euro và thử lại để thực hiệnTạo chỉ kèo bóng đá euro Đồng thời. (kèo bóng đá euro khả năng khác là xây dựng lại chỉ số vớiReindex. Tuy nhiên, vìReindexKhông hỗ trợ đồng thời xây dựng, 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 hạn chế tính độc đáo đã được thực thi chống lạ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ỉ kèo bóng đá euro có sẵn để sử dụng hoặc Ngay cả trong trường hợp xây 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 nó Ràng buộc duy nhất sau đó.

Bản 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ợ. 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.

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

ghi chú

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 những tình huống cụ thể mà chúng có thể hữu ích.

Hiện tại, chỉ có các phương thức B-Tree và GIST. 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ỉ 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 đó. Ví dụ, a Chỉ kèo bóng đá euro 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ỉ kèo bóng đá euro. Thêm thông tin Giới thiệu về các lớp toán tử đang ởPhần 11.9và trongPhần 34.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 tại, chỉ B-cây), mệnh đề tùy chọnASC, Desc, NULLS ĐẦU TIÊN, và/hoặcnulls cuối cùngCó thể được chỉ định để đảo ngược hướng sắp xếp bình thường 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, Thông thường không hữu ích khi 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ỉ kèo bóng đá euro 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, chứ không phải 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.

Sử dụngDrop Indexđến 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ị 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ỉ 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ũ cơ sở dữ liệu cho gist.

Ví dụ

Để tạo chỉ kèo bóng đá euro B-cây trên cộtTiêu đề​​Trong 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ứcHạ (Tiêu đề), cho phép trường hợp không nhạy cảm hiệu quả Tìm kiếm:

Tạo chỉ kèo bóng đá euro Lower_Title_idx trên phim ((thấp hơn (Tiêu đề)));
THẬN TRỌNG

Các hoạt động chỉ kèo bóng đá euro băm hiện không được Wal-logged, vì vậy Các chỉ kèo bóng đá euro 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ỉ kèo bóng đá euro băm là không được sao chép trên bản sao chờ ấm áp sau khi Sao lưu cơ sở ban đầu, vì vậy họ đưa ra câu trả lời sai cho Truy vấn mà sau đó sử dụng chúng. Vì những lý do này, Việc sử dụng chỉ kèo bóng đá euro băm hiện đang được nản lòng.

Để 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 TITT_IDX_NULLS_LOW trên phim (Tiêu đề NULLS đầ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 một chỉ kèo bóng đá euro trên cộtCODETrong bảngPhimvà có chỉ kèo bóng đá euro cư trú 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 một chỉ kèo bóng đá euro mà không cần khóa ghi vào bàn:

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

Tương thích

29543_29557là kèo bóng đá euroPostgreSQLMở rộng ngôn ngữ. Không có Quy định cho các chỉ kèo bóng đá euro trong tiêu chuẩn SQL.