kèo bóng đá c110364_10406kèo bóng đá c1được thiết kế để xử lý các trường hợp trong đó các kèo bóng đá c1 được lập chỉ kèo bóng đá c1 là các giá trị tổng hợp và các truy vấn được xử lý bởi chỉ kèo bóng đá c1 cần tìm kiếm các giá trị phần tử xuất hiện trong các kèo bóng đá c1 tổng hợp. Ví dụ: các kèo bóng đá c1 có thể là tài liệu và các truy vấn có thể là tìm kiếm các tài liệu có chứa các từ cụ thể.
Chúng tôi sử dụng từkèo bóng đá c1để chỉ một giá trị tổng hợp sẽ được lập chỉ kèo bóng đá c1 và từKeyđể tham khảo giá trị phần tử.kèo bóng đá c110985_11048
Akèo bóng đá c1INDEX lưu trữ một bộ (khóa, danh sách đăng bài), trong đó ADanh sách đănglà một tập hợp các ID hàng trong đó khóa xảy ra. ID hàng tương tự có thể xuất hiện trong nhiều danh sách đăng bài, vì một kèo bóng đá c1 có thể chứa nhiều hơn một khóa. Mỗi giá trị khóa chỉ được lưu trữ một lần, vì vậy mộtkèo bóng đá c1Chỉ kèo bóng đá c1 rất nhỏ gọn cho các trường hợp cùng một khóa xuất hiện nhiều lần.
kèo bóng đá c1được khái quát theo nghĩa làkèo bóng đá c1Mã phương thức truy cập không cần biết các hoạt động cụ thể mà nó tăng tốc. Thay vào đó, nó sử dụng các chiến lược tùy chỉnh được xác định cho các loại dữ liệu cụ thể. Chiến lược xác định cách các khóa được trích xuất từ các kèo bóng đá c1 được lập chỉ kèo bóng đá c1 và điều kiện truy vấn và cách xác định xem một hàng có chứa một số giá trị khóa trong truy vấn thực sự thỏa mãn truy vấn hay không.
Một lợi thế củakèo bóng đá c1Có phải nó cho phép phát triển các loại dữ liệu tùy kèo bóng đá c1nh với các phương thức truy cập phù hợp, bởi một chuyên gia trong miền của loại dữ liệu, thay vì một chuyên gia cơ sở dữ liệu. Đây là lợi thế tương tự như sử dụnggist.
Thekèo bóng đá c1Triển khai trongPostgreSQLchủ yếu được duy trì bởi Teodor Sigaev và Oleg Bartunov. Có thêm thông tin vềkèo bóng đá c1trên của họTrang web.
CorePostgreSQLPhân phối bao gồmkèo bóng đá c1Các lớp toán tử hiển thị trongBảng 64.3. (Một số mô -đun tùy chọn được mô tả trongPhụ lục FCung cấp bổ sungkèo bóng đá c1Các lớp toán tử.)
Bảng 64.3. Tích hợpkèo bóng đá c1Các lớp toán tử
tên | toán tử có thể lập chỉ kèo bóng đá c1 |
---|---|
Array_ops |
&& (AnyArray, AnyArray) |
@ (AnyArray, AnyArray) |
|
<@ (AnyArray, AnyArray) |
|
= (AnyArray, AnyArray) |
|
jsonb_ops |
@ (jsonb, jsonb) |
@? (jsonb, jsonpath) |
|
@@ (jsonb, jsonpath) |
|
? (jsonb, văn bản) |
|
? | (jsonb, văn bản []) |
|
? & (Jsonb, văn bản []) |
|
JSONB_PATH_OPS |
@ (jsonb, jsonb) |
@? (jsonb, jsonpath) |
|
@@ (jsonb, jsonpath) |
|
tsVector_ops |
15833_15856 |
của hai lớp toán tử cho loạijsonb
, jsonb_ops
là mặc định.JSONB_PATH_OPS
16146_16229Phần 8.14.4Để biết chi tiết.
Thekèo bóng đá c1Giao diện có mức độ trừu tượng cao, yêu cầu người thực hiện phương thức truy cập chỉ để thực hiện ngữ nghĩa của kiểu dữ liệu được truy cập. Thekèo bóng đá c1Bản thân lớp chăm sóc sự đồng thời, ghi nhật ký và tìm kiếm cấu trúc cây.
Tất cả những gì cần thiết để có được mộtkèo bóng đá c117012_17211kèo bóng đá c1Kết hợp độ mở rộng với tính tổng quát, tái sử dụng mã và giao diện sạch.
Có hai phương thức mà một lớp toán tử chokèo bóng đá c1phải cung cấp:
17557_17627
Trả về một mảng palloc'd gồm một kèo bóng đá c1 được cung cấp một kèo bóng đá c1 được lập chỉ kèo bóng đá c1. Số lượng khóa trả về phải được lưu trữ thành*NKEYS
. Nếu bất kỳ phím nào có thể là null, cũng palloc một mảng*NKEYS
bool
Trường, lưu trữ địa chỉ của nó tại*nullflags
, và đặt các cờ null này khi cần thiết.*nullflags
có thể để lạinull
(giá trị ban đầu của nó) nếu tất cả các khóa không phải là null. Giá trị trả về có thể lànull
Nếu kèo bóng đá c1 không chứa khóa.
Datum *ExtractQuery (Query Datum, Int32 *Nkeys, StrategyNumber N, Bool ** pmatch, Con trỏ ** Extra_Data, Bool ** Nullflags, Int32 *SearchMode)
Trả về một mảng palloc'd gồm các khóa được cung cấp một giá trị được truy vấn; đó là,Truy vấn
là giá trị ở phía bên phải của toán tử có thể lập chỉ kèo bóng đá c1 có phía bên trái là cột được lập chỉ kèo bóng đá c1.n
là số chiến lược của toán tử trong lớp toán tử (xemPhần 36.16.2). Thường,Trích xuất
Sẽ cần tham khảo ý kiếnn
Để xác định loại dữ liệu củaTruy vấn
và phương pháp nó nên sử dụng để trích xuất các giá trị khóa. Số lượng khóa trả về phải được lưu trữ thành19248_19256
. Nếu bất kỳ phím nào có thể là null, cũng palloc một mảng19341_19349
bool
Trường, lưu trữ địa chỉ của nó tại*nullflags
, và đặt các cờ null này khi cần thiết.19514_19526
Có thể để lạinull
(giá trị ban đầu của nó) nếu tất cả các khóa không phải là null. Giá trị trả về có thể lànull
NếuTruy vấn
Không chứa khóa.
SearchMode
là một đối số đầu ra cho phépTrích xuất
Để chỉ định chi tiết về cách tìm kiếm sẽ được thực hiện. Nếu như*SearchMode
được đặt thànhgin_search_mode_default
(là giá trị mà nó được khởi tạo trước khi gọi), chỉ các kèo bóng đá c1 phù hợp với ít nhất một trong các khóa trả về được coi là phù hợp ứng cử viên. Nếu như*SearchMode
được đặt thànhGIN_SEARCH_MODE_INCLUDE_EMPTY
, sau đó ngoài các kèo bóng đá c1 chứa ít nhất một phím phù hợp, các kèo bóng đá c1 không chứa khóa nào được coi là phù hợp ứng cử viên. (Ví dụ: Chế độ này rất hữu ích để triển khai các toán tử là bộ phận của các toán tử.) Nếu*SearchMode
được đặt thànhGIN_SEARCH_MODE_ALL
, thì tất cả các kèo bóng đá c1 không null trong chỉ kèo bóng đá c1 được coi là phù hợp ứng cử viên, cho dù chúng có khớp với bất kỳ khóa nào được trả về hay không. .Access/kèo bóng đá c1H
.
pmatch
là một đối số đầu ra để sử dụng khi hỗ trợ kết hợp một phần. Để sử dụng nó,Trích xuất
Phải phân bổ một mảng*NKEYS
bool
S và lưu trữ địa chỉ của nó tại*pmatch
. Mỗi phần tử của mảng phải được đặt thành true nếu khóa tương ứng yêu cầu khớp một phần, sai nếu không. Nếu như*pmatch
được đặt thànhnull
Sau đó, kèo bóng đá c1 giả định rằng không cần kết hợp một phần. Biến được khởi tạo thànhnull
Trước khi gọi, vì vậy đối số này có thể bị bỏ qua bởi các lớp toán tử không hỗ trợ kết hợp một phần.
Extra_Data
là đối số đầu ra cho phépTrích xuất
Để truyền dữ liệu bổ sung chonhất quán
vàSo sánhpartial
Phương pháp. Để sử dụng nó,Trích xuất
Phải phân bổ một mảng*NKEYS
Con trỏ và lưu trữ địa chỉ của nó tại*Extra_data
, sau đó lưu trữ bất cứ điều gì nó muốn vào các con trỏ riêng lẻ. Biến được khởi tạo thànhnull
Trước khi gọi, vì vậy đối số này có thể đơn giản bị bỏ qua bởi các lớp toán tử không yêu cầu thêm dữ liệu. Nếu như*Extra_data
được đặt, toàn bộ mảng được chuyển chonhất quán
Phương thức và phần tử thích hợp choso sánhspartial
Phương pháp.
22804_22935nhất quán
chức năng và một ternaryTriconsistent
chức năng.Triconsistent
Bao gồm chức năng của cả hai, vì vậy cung cấpTriconsistent
Một mình là đủ. Tuy nhiên, nếu biến thể Boolean rẻ hơn đáng kể để tính toán, thì có thể thuận lợi để cung cấp cả hai. Nếu chỉ có biến thể Boolean được cung cấp, một số tối ưu hóa phụ thuộc vào các kèo bóng đá c1 chỉ kèo bóng đá c1 từ chối trước khi tìm nạp tất cả các khóa bị vô hiệu hóa.
23579_23728
Trả về đúng nếu một kèo bóng đá c1 được lập chỉ kèo bóng đá c1 thỏa mãn toán tử truy vấn với số chiến lượcn
(hoặc có thể thỏa mãn nó, nếu chỉ báo kiểm tra lại). Chức năng này không có quyền truy cập trực tiếp vào giá trị của kèo bóng đá c1 được lập chỉ kèo bóng đá c1, vìkèo bóng đá c1Không lưu trữ các kèo bóng đá c1 một cách rõ ràng. Thay vào đó, những gì có sẵn là kiến thức về giá trị khóa nào được trích xuất từ truy vấn xuất hiện trong một kèo bóng đá c1 được lập chỉ kèo bóng đá c1 nhất định. TheKiểm tra
mảng có độ dàiNKEYS
, giống như số lượng khóa được trả về trước đóTrích xuất
cho điều nàyTruy vấn
Datum. Mỗi yếu tố củaKiểm tra
Mảng là đúng nếu kèo bóng đá c1 được lập chỉ kèo bóng đá c1 chứa khóa truy vấn tương ứng, tức là, nếu (kiểm tra [i] == true) phím thứ i củaTrích xuất
Mảng kết quả có mặt trong kèo bóng đá c1 được lập chỉ kèo bóng đá c1. Bản gốcTruy vấn
Datum được truyền trong trường hợpnhất quán
Phương pháp cần tham khảo nó, và cũng vậyTruy vấn []
vànullflags []
mảng được trả về trước đóTrích xuất
. Extra_Data
là mảng dữ liệu thêm được trả về bởiTrích xuất
hoặcnull
nếu không.
KhiTrích xuất
Trả về phím null trongQuerykeys []
, tương ứngKiểm tra []
Phần tử là đúng nếu kèo bóng đá c1 được lập chỉ kèo bóng đá c1 chứa khóa null; đó là ngữ nghĩa củaKiểm tra []
giống nhưkhông khác biệt với
. Thenhất quán
Hàm có thể kiểm tra tương ứngnullflags []
Phần tử nếu nó cần nói sự khác biệt giữa khớp giá trị thông thường và khớp null.
Khi thành công,*Recheck
nên được đặt thành true nếu tple heap cần được kiểm tra lại đối với toán tử truy vấn hoặc sai nếu kiểm tra chỉ kèo bóng đá c1 là chính xác. Đó là, một giá trị trả về sai đảm bảo rằng Tuple Heap không khớp với truy vấn; Giá trị trả về thực sự với*Recheck
26135_26233*Recheck
26268_26450
26521_26680
Triconsistent
giống vớinhất quán
, nhưng thay vì booleans trongKiểm tra
Vector, có ba giá trị có thể cho mỗi khóa:Gin_True
, Gin_False
vàgin_maybe
. Gin_False
vàgin_true
Có ý nghĩa tương tự như các giá trị boolean thông thường, trong khigin_maybe
27240_27298Gin_Maybe
Giá trị có mặt, hàm chỉ nên trả vềGin_True
27424_2756127581_27592
Chỉ khi vật phẩm chắc chắn không khớp, dù nó có chứaGin_Maybe
Khóa. Nếu kết quả phụ thuộc vàoGin_Maybe
kèo bóng đá c1 nhập, tức là, trận đấu không thể được xác nhận hoặc bác bỏ dựa trên các khóa truy vấn đã biết, chức năng phải trả vềgin_maybe
.
Khi không cóGin_Maybe
Giá trị trongKiểm tra
Vector, Agin_maybe
Giá trị trả về tương đương với việc cài đặtRecheck
cờ trong booleannhất quán
chức năng.
Ngoài ra, Gin phải có cách sắp xếp các giá trị chính được lưu trữ trong chỉ kèo bóng đá c1. Lớp toán tử có thể xác định thứ tự sắp xếp bằng cách chỉ định phương thức so sánh:
int so sánh (Datum A, Datum B)
So sánh hai khóa (không được lập chỉ kèo bóng đá c1!) Và trả về một số nguyên nhỏ hơn 0, 0 hoặc lớn hơn 0, cho biết phím thứ nhất có nhỏ hơn hoặc bằng hoặc lớn hơn thứ hai. Các phím null không bao giờ được truyền cho chức năng này.
Ngoài ra, nếu lớp toán tử không cung cấpso sánh
29044_29392Array_ops
) Thông thường không thể chỉ định một hàm so sánh duy nhất.
29496_29520kèo bóng đá c1có thể tùy chọn cung cấp các phương pháp sau:
29723_29811
So sánh khóa truy vấn khớp một phần với khóa chỉ kèo bóng đá c1. Trả về một số nguyên có dấu cho biết kết quả: nhỏ hơn 0 có nghĩa là khóa chỉ kèo bóng đá c1 không khớp với truy vấn, nhưng việc quét chỉ kèo bóng đá c1 sẽ tiếp tục; Không có nghĩa là khóa chỉ kèo bóng đá c1 phù hợp với truy vấn; Lớn hơn 0 chỉ ra rằng việc quét chỉ kèo bóng đá c1 sẽ dừng vì không thể có nhiều trận đấu. Số chiến lượcn
của toán tử tạo truy vấn khớp một phần được cung cấp, trong trường hợp ngữ nghĩa của nó là cần thiết để xác định khi nào nên kết thúc quá trình quét. Cũng,Extra_Data
là phần tử tương ứng của mảng dữ liệu phụ được thực hiện bởiTrích xuất
hoặc30567_30573
Nếu không có. Các phím null không bao giờ được truyền cho chức năng này.
Tùy chọn void (local_relopts *relopts)
Xác định một tập hợp các tham số có thể nhìn thấy người dùng điều khiển hành vi của lớp toán tử.
TheTùy chọn
Hàm được chuyển một con trỏ đến Alocal_relopts
struct, cần được lấp đầy với một tập hợp các tùy chọn cụ thể của lớp vận hành. Các tùy chọn có thể được truy cập từ các chức năng hỗ trợ khác bằng cách sử dụngpg_has_opclass_options ()
vàPG_GET_OPCLASS_OPTES ()
Macros.
Vì cả hai trích xuất chính của các giá trị được lập chỉ kèo bóng đá c1 và biểu diễn của khóa trongkèo bóng đá c1linh hoạt, chúng có thể phụ thuộc vào các tham số do người dùng chỉ định.
Để hỗ trợKết hợp một phầnHồiTruy vấn, lớp toán tử phải cung cấpSo sánhpartial
Phương thức và nóTrích xuất
Phương thức phải đặtpmatch
tham số khi gặp một phần truy vấn khớp một phần. Nhìn thấyPhần 64.4.4.2Để biết chi tiết.
Các loại dữ liệu thực tế của các loại khác nhauDatum
Các giá trị được đề cập ở trên thay đổi tùy thuộc vào lớp toán tử. Các giá trị kèo bóng đá c1 được truyền đếnExtractValue
luôn thuộc loại đầu vào của lớp toán tử và tất cả các giá trị chính phải là của lớplưu trữ
Loại. Loại củaTruy vấn
Đối số được chuyển choTrích xuất
, nhất quán
vàTriconsistent
là bất cứ thứ gì là loại đầu vào bên phải của toán tử thành viên lớp được xác định bởi số chiến lược. Điều này không cần phải giống như loại được lập chỉ kèo bóng đá c1, miễn là các giá trị chính của loại chính xác có thể được trích xuất từ nó. Tuy nhiên, khuyến nghị các khai báo SQL của ba chức năng hỗ trợ này sử dụng loại dữ liệu được lập chỉ kèo bóng đá c1 của OPClass choTruy vấn
Đối số, mặc dù loại thực tế có thể là thứ khác tùy thuộc vào toán tử.
Nội bộ, Akèo bóng đá c1INDEX chứa một chỉ số B-cây được xây dựng trên các khóa, trong đó mỗi khóa là một phần tử của một hoặc nhiều kèo bóng đá c1 được lập chỉ kèo bóng đá c1 (ví dụ như một thành viên của một mảng) và trong đó mỗi bộ tusPosting Tree”) hoặc một danh sách đơn giản các con trỏ heap (ADanh sách đăng) Khi danh sách đủ nhỏ để phù hợp với một chỉ kèo bóng đá c1 duy nhất cùng với giá trị khóa.Hình 64.1Minh họa các thành phần này của kèo bóng đá c1.
kể từPostgreSQL9.1, các giá trị khóa NULL có thể được bao gồm trong chỉ kèo bóng đá c1. Ngoài ra, null giữ chỗ được bao gồm trong chỉ kèo bóng đá c1 cho các kèo bóng đá c1 được lập chỉ kèo bóng đá c1 là null hoặc không chứa các phím theoExtractValue
. Điều này cho phép các tìm kiếm nên tìm các kèo bóng đá c1 trống để làm như vậy.
Multicolumnkèo bóng đá c1Các chỉ kèo bóng đá c1 được triển khai bằng cách xây dựng một cây B duy nhất trên các giá trị tổng hợp (số cột, giá trị khóa). Các giá trị khóa cho các cột khác nhau có thể thuộc các loại khác nhau.
Hình 64.1. kèo bóng đá c1 Internals
Cập nhật Akèo bóng đá c1INDEX có xu hướng chậm vì tính chất nội tại của các chỉ số đảo ngược: chèn hoặc cập nhật một hàng đống có thể gây ra nhiều chèn vào chỉ kèo bóng đá c1 (một cho mỗi khóa được trích xuất từ kèo bóng đá c1 được lập chỉ kèo bóng đá c1).kèo bóng đá c1có khả năng hoãn phần lớn công việc này bằng cách chèn các bộ dữ liệu mới vào một danh sách tạm thời, chưa được phân loại các kèo bóng đá c1 đang chờ xử lý. Khi bảng được hút bụi hoặc tự động hóa, hoặc khi35725_35749
Hàm được gọi hoặc nếu danh sách đang chờ xử lý lớn hơngin_pending_list_limit, các kèo bóng đá c1 được chuyển đến chínhkèo bóng đá c1Cấu trúc dữ liệu sử dụng cùng một kỹ thuật chèn số lượng lớn được sử dụng trong quá trình tạo chỉ kèo bóng đá c1 ban đầu. Điều này cải thiện đáng kểkèo bóng đá c1Tốc độ cập nhật chỉ kèo bóng đá c1, thậm chí đếm chi phí chân không bổ sung. Ngoài ra, công việc trên cao có thể được thực hiện bằng một quy trình nền thay vì xử lý truy vấn tiền cảnh.
Nhược điểm chính của phương pháp này là các tìm kiếm phải quét danh sách các kèo bóng đá c1 đang chờ xử lý ngoài việc tìm kiếm chỉ kèo bóng đá c1 thông thường, và do đó, một danh sách lớn các kèo bóng đá c1 đang chờ xử lý sẽ làm chậm các tìm kiếm đáng kể. Một nhược điểm khác là, trong khi hầu hết các bản cập nhật đều nhanh, một bản cập nhật khiến danh sách đang chờ xử lý trở thànhquá lớnsẽ phải chịu một chu kỳ dọn dẹp ngay lập tức và do đó chậm hơn nhiều so với các bản cập nhật khác. Việc sử dụng đúng autovacuum có thể giảm thiểu cả hai vấn đề này.
Nếu thời gian phản hồi nhất quán quan trọng hơn tốc độ cập nhật, việc sử dụng các kèo bóng đá c1 đang chờ xử lý có thể bị vô hiệu hóa bằng cách tắtFastupdate
Tham số lưu trữ cho Akèo bóng đá c1INDEX. Nhìn thấyTạo chỉ kèo bóng đá c1Để biết chi tiết.
kèo bóng đá c1 có thể hỗ trợKết hợp một phầnHàng37626_37838so sánh
Phương pháp hỗ trợ). TheTrích xuất
Phương thức, thay vì trả về một giá trị khóa được khớp chính xác, trả về giá trị khóa là giới hạn dưới của phạm vi cần tìm kiếm và đặtpmatch
cờ đúng. Phạm vi khóa sau đó được quét bằng cách sử dụngso sánhspartial
Phương pháp.so sánhspartial
38272_38469
Chèn vào Akèo bóng đá c1Chỉ kèo bóng đá c1 có thể chậm do khả năng nhiều khóa được chèn cho mỗi kèo bóng đá c1. Vì vậy, đối với các chèn số lượng lớn vào một bảng, nên bỏ chỉ số gin và tạo lại nó sau khi hoàn thành việc chèn số lượng lớn.
KhiFastupdate
được bật chokèo bóng đá c1(xemPhần 64.4.4.1Để biết chi tiết), hình phạt ít hơn khi nó không. Nhưng đối với các bản cập nhật rất lớn, nó vẫn có thể tốt nhất để bỏ và tạo lại chỉ kèo bóng đá c1.
Xây dựng thời gian cho Akèo bóng đá c1Chỉ kèo bóng đá c1 rất nhạy cảm vớibảo trì_work_mem
Cài đặt; nó không trả tiền để tiết kiệm bộ nhớ làm việc trong quá trình tạo chỉ kèo bóng đá c1.
Trong một loạt các phần chèn vào hiện tạikèo bóng đá c1Chỉ kèo bóng đá c1 cóFastupDate
Đã bật, hệ thống sẽ dọn dẹp danh sách nhập cảnh đang chờ xử lý bất cứ khi nào danh sách phát triển lớn hơngin_pending_list_limit
. Để tránh sự biến động trong thời gian phản hồi quan sát, mong muốn được làm sạch trong danh sách đang chờ xử lý xảy ra trong nền (tức là, thông qua Autovacuum). Có thể tránh được các hoạt động dọn dẹp tiền cảnh bằng cách tănggin_pending_list_limit
hoặc làm cho Autovacuum trở nên tích cực hơn. Tuy nhiên, việc mở rộng ngưỡng của hoạt động dọn dẹp có nghĩa là nếu việc dọn dẹp tiền cảnh xảy ra, nó sẽ mất nhiều thời gian hơn.
gin_pending_list_limit
có thể được ghi đè cho các kèo bóng đá c1 riêng lẻ bằng cách thay đổi các tham số lưu trữ, cho phép mỗi kèo bóng đá c1 có ngưỡng làm sạch riêng. Ví dụ: chỉ có thể tăng ngưỡng cho chỉ số gin có thể được cập nhật rất nhiều và giảm nó.
kèo bóng đá c1 tiêu chính của việc phát triểnkèo bóng đá c1Indexes là để tạo hỗ trợ cho tìm kiếm toàn văn có khả năng mở rộng cao trongPostgreSQL41532_41920
Để tạo điều kiện thực hiện có kiểm soát các truy vấn đó,kèo bóng đá c1Có giới hạn trên mềm có thể định cấu hình trên số lượng hàng được trả về:gin_fuzzy_search_limit
Tham số cấu hình. Nó được đặt thành 0 (có nghĩa là không có giới hạn) theo mặc định. Nếu một giới hạn khác không được đặt, thì bộ được trả về là một tập hợp con của toàn bộ tập kết quả, được chọn ngẫu nhiên.
mềm”có nghĩa là số lượng kết quả trả về thực tế có thể khác với giới hạn được chỉ định, tùy thuộc vào truy vấn và chất lượng của bộ tạo số ngẫu nhiên của hệ thống.
Từ kinh nghiệm, các giá trị trong hàng ngàn (ví dụ: 5000 - 20000) hoạt động tốt.
kèo bóng đá c1Giả sử rằng các toán tử có thể lập chỉ kèo bóng đá c1 là nghiêm ngặt. Điều này có nghĩa làExtractValue
Sẽ hoàn toàn không được gọi trên giá trị kèo bóng đá c1 NULL (thay vào đó, kèo bóng đá c1 nhập chỉ kèo bóng đá c1 trình giữ chỗ được tạo tự động) vàTrích xuất
sẽ không được gọi trên giá trị truy vấn null (thay vào đó, truy vấn được cho là không hài lòng). Tuy nhiên, lưu ý rằng các giá trị khóa NULL có trong một kèo bóng đá c1 tổng hợp không null hoặc giá trị truy vấn được hỗ trợ.
CorePOSTGRESQLPhân phối bao gồmkèo bóng đá c1Các lớp toán tử được hiển thị trước đó trongBảng 64.3. SauĐóng góp
Mô -đun cũng chứaPostgresql: TàiCác lớp vận hành:
btree_gin
Chức năng tương đương B-cây cho một số loại dữ liệu
Hstore
Mô -đun để lưu trữ (khóa, giá trị) cặp
intarray
Hỗ trợ nâng cao choint []
PG_TRGM
Sự tương đồng về văn bản bằng cách sử dụng Trigram khớp
Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.