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 kèo bóng đá hôm nay và ngày mai trang chohiện tạiPhiên bản hoặc kèo bóng đá hôm nay và ngày mai 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 đá 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ê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 đá hôm nay và ngày maiXây dựng một chỉ kèo bóng đá hôm nay và ngày mai Được đặt têntênTrên được chỉ định bàn. Các chỉ kèo bóng đá hôm nay và ngày mai 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).

11863_12071

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ỉ số kèo bóng đá hôm nay và ngày mai 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 đáo13318_13375Phầ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ả các chức năng và toán tử được sử dụng trong kèo bóng đá hôm nay và ngày mai đị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ỉ kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai 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 đá 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,PostgreSQL14969_15289Tò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àm bảng cha mẹ của nó.

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

Tên của kèo bóng đá hôm nay và ngày mai cột của bảng.

Biểu thức

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

opClass

Tên của kèo bóng đá hôm nay và ngày mai 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 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.

không gian bảng

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_tablespace18123_18151Temp_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ữ

Biểu thức ràng buộc cho một chỉ kèo bóng đá hôm nay và ngày mai một phần.

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

Tùy chọnvới18671_18695Thông 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

19027_19981

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 52.3.1. Nó là kèo bóng đá hôm nay và ngày mai 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

21584_21669PostgreSQLKhóa bảng để được lập chỉ kèo bóng đá hôm nay và ngày mai chống lại ghi và thực hiện toàn bộ chỉ kèo bóng đá hôm nay và ngày mai 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ỉ kèo bóng đá hôm nay và ngày mai và thậm chí đối với nhỏ hơn bảng, bản dựng chỉ kèo bóng đá hôm nay và ngày mai 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ỉ 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ử 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 đá hôm nay và ngày mai đượ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 đá hôm nay và ngày mai 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 đá 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 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 đá hôm nay và ngày mai duy nhất,Tạ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"không hợp lệ"INDEX. Chỉ số này sẽ bị bỏ qua cho kèo bóng đá hôm nay và ngày mai đí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ẽ 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. (kèo bóng đá hôm nay và ngày mai 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ệ"INDEX tiếp tục thực thi nó Ràng buộc duy nhất sau đó.

25034_25265

25276_25583Tạo chỉ kèo bóng đá hôm nay và ngày mailệnh có thể được thực hiện trong kèo bóng đá hôm nay và ngày mai 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

Hoạt động chỉ số băm hiện không được Wal-Logged, vì vậy Các chỉ kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai 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 đá hôm nay và ngày mai 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ỉ kèo bóng đá hôm nay và ngày mai 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 toán tửcó 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 34.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ẽ lái máy vào hoán đổi. Cho băm chỉ kèo bóng đá hôm nay và ngày mai, giá trị củahiệu quả_cache_sizecũng có liên quan đến thời gian tạo chỉ kèo bóng đá hôm nay và ngày mai:PostgreSQLsẽ sử dụng một trong hai Phương pháp tạo chỉ số băm tùy thuộc vào việc ước tính có ước tính kích thước chỉ kèo bóng đá hôm nay và ngày mai nhiều hơn hoặc ít hơnhiệu quả_cache_size29827_29971bảo trì_work_memhiệu quả_cache_sizenhỏ hơn máy RAM ít hơn bất kỳ không gian nào cần thiết bởi các chương trình khác.

sử dụngDrop Indexđến Xóa 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 đề30828_30844Phim:

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ứcHạ (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ỉ kèo bóng đá hôm nay và ngày mai Lower_Title_idx trên phim ((thấp hơn (Tiêu đề)));

Để 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:

31300_31366

Để 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:

31666_31756

Để tạo một chỉ kèo bóng đá hôm nay và ngày mai trên cộtTrong bảngPhim31875_31924IndexSpace:

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

Tạo chỉ kèo bóng đá hôm nay và ngày maiPOSTGRESQLMở 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.