Phiên bản được hỗ trợ:hiện tại(173641_377216 / 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 kèo bóng đá hôm nay và ngày mai và ngày mai phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

Tạo Chỉ kèo bóng đá hôm nay và ngày mai

tên

Tạo chỉ kèo bóng đá hôm nay và ngày mai-Xác định chỉ kèo bóng đá hôm nay và ngày mai mới

Synopsis

Tạo [duy nhất] chỉ kèo bóng đá hôm nay và ngày mai [đồng thời] [tên] trênBảng[sử dụngPhương pháp]
    (Cột| (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ảngkhông gian bảng]
    [ Ở ĐÂUvị ngữ]

Mô tả

Tạo chỉ kèo bóng đá hôm nay và ngày maiXây dựng một chỉ kèo bóng đá hôm nay và ngày mai trên (các) cột được chỉ định của bảng được chỉ định. Chỉ kèo bóng đá hôm nay và ngày mai 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).

11841_12049

Trường chỉ kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai đượ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 đá hôm nay và ngày mai.

PostgreSQLcung cấp chỉ kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai riêng, nhưng điều đó khá phức tạp.

KhiWHEREmệnh đề có mặt, AChỉ kèo bóng đá hôm nay và ngày mai một phầnđược tạo. Một phần Chỉ kèo bóng đá hôm nay và ngày mai là một chỉ kèo bóng đá hôm nay và ngày mai chứa các kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai 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 đá hôm nay và ngày mai 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 đối với một tập hợp con bàn. Nhìn thấyPhầ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 đá hôm nay và ngày mai. 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 đá hôm nay và ngày mai là biểu thức.

Tất cả kèo bóng đá hôm nay và ngày mai chức năng và toán tử được sử dụng trong một định nghĩa chỉ số phải là"Immutable"13901_14200WHEREmệnh đề, hãy nhớ Đánh dấu chức năng bất biến khi bạn kèo bóng đá hôm nay và ngày mai 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 bóng đá hôm nay và ngày mai đượ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 kèo bóng đá hôm nay và ngày mai 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ỉ kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai đồng thời.

tên

Tên của chỉ kèo bóng đá hôm nay và ngày mai sẽ được tạo. Không có tên lược đồ có thể được bao gồm ở đây; Chỉ kèo bóng đá hôm nay và ngày mai 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ỉ kèo bóng đá hôm nay và ngày mai.

Bảng

Tên (có thể được lập chỉ kèo bóng đá hôm nay và ngày mai.

Phương pháp

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

Cột

16441_16477

expression

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 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 một cuộc gọi chức năng.

đối chiếu

Tên của đối chiếu sẽ sử dụng cho chỉ kèo bóng đá hôm nay và ngày mai. Qua mặc định, chỉ kèo bóng đá hôm nay và ngày mai sử dụng đối chiếu được khai báo cho cột được lập chỉ kèo bóng đá hôm nay và ngày mai hoặc đối chiếu kết quả của Biểu thức được lập chỉ kèo bóng đá hôm nay và ngày mai. Chỉ kèo bóng đá hôm nay và ngày mai 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 một 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 kèo bóng đá hôm nay và ngày mai nulls. Đây là Mặc định khiDescIS đượ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 đá hôm nay và ngày mai. Nhìn thấyINDEX Thông số lưu trữĐể biết chi tiết.

Tablespace

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

vị ngữ

18972_19020

Tham số lưu trữ chỉ kèo bóng đá hôm nay và ngày mai

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

Fillfactor

19624_20578

Chỉ kèo bóng đá hôm nay và ngày mai 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 54.3.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 lần chèn trong tương lai Từ việc đi vào danh sách các kèo bóng đá hôm nay và ngày mai nhập chỉ kèo bóng đá hôm nay và ngày mai đang chờ xử lý, nhưng bản thân nó không tự làm sạch các kèo bóng đá hôm nay và ngày mai 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ỉ kèo bóng đá hôm nay và ngày mai xây dựng đồng thời

Tạo một chỉ kèo bóng đá hôm nay và ngày mai 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ườngPostgreSQL22265_22835

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ọn củaTạo chỉ kèo bóng đá hôm nay và ngày mai. Khi này Tùy chọn đượ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 đá hôm nay và ngày mai để chấm dứt. Do đó, phương pháp này yêu cầu tổng số công việc hơn so với xây dựng chỉ kèo bóng đá hôm nay và ngày mai tiêu chuẩn và mất lâu hơn đáng kể để 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 đá hôm nay và ngày mai được xây dựng, điều này Phương pháp này rất hữu ích để thêm các chỉ kèo bóng đá hôm nay và ngày mai mới trong sản xuất môi trường. Tất nhiên, tải thêm CPU và I/O được áp đặt bởi Tạo chỉ kèo bóng đá hôm nay và ngày mai có thể làm chậm các hoạt động khác.

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

24538_24644Tạo chỉ kèo bóng đá hôm nay và ngày mailệ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ì kèo bóng đá hôm nay và ngày mai đí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ỉ kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai:
    "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 đá hôm nay và ngày mai và thử lại để thực hiệnTạo chỉ kèo bóng đá hôm nay và ngày mai Đồng thời. (Một 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 đá hôm nay và ngày mai 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 đá hôm nay và ngày mai 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ệ"26143_26214

xây dựng đồng thời các chỉ kèo bóng đá hôm nay và ngày mai biểu thức và chỉ kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai thường xuyên cho phép các bản dựng chỉ kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai 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 đá hôm nay và ngày mailệnh có thể được thực hiện trong một Khối giao dịch, nhưngTạo chỉ kèo bóng đá hôm nay và ngày mai Đồ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 đá hôm nay và ngày mai 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

27426_27536ReindexSau 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 đá hôm nay và ngày mai 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ỉ kèo bóng đá hôm nay và ngày mai băm hiện đang được nản lòng.

Hiện tại, chỉ có kèo bóng đá hôm nay và ngày mai 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ỉ kèo bóng đá hôm nay và ngày mai duy nhất.

ANlớp vận hànhcó thể được chỉ định cho mỗi cột của một chỉ kèo bóng đá hôm nay và ngày mai. 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 đá hôm nay và ngày mai cho cột đó. Ví dụ, a Chỉ kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai. 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ỉ kèo bóng đá hôm nay và ngày mai 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 để sửa đổi thứ tự sắp xếp của chỉ kèo bóng đá hôm nay và ngày mai. 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ỉ kèo bóng đá hôm nay và ngày mai 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ỉ kèo bóng đá hôm nay và ngày mai để tránh sắp xếp các bước.

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

Phát hành trướcPostgreSQLCũng có phương thức chỉ kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày maisẽ 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 đá hôm nay và ngày mai B-cây trên cộtTiêu đềTrong bảngPhim:

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

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

Tạo chỉ kèo bóng đá hôm nay và ngày mai trên phim ((thấp hơn (tiêu đề)));

31664_31768films_lower_idx.)

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

31903_31970

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

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

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

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

Để kèo bóng đá hôm nay và ngày mai AGinChỉ kèo bóng đá hôm nay và ngày mai với Cập nhật nhanh bị tắt:

32443_32533

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

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

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

Tương thích

33487_33501là APOSTGRESQLMở rộng ngôn ngữ. Không có Quy định cho các chỉ kèo bóng đá hôm nay và ngày mai trong tiêu chuẩn SQL.