nội bộ, AGinINDEX 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 chấp bóng đá hôm nay được lập chỉ kèo chấp bóng đá hôm nay (ví dụ như một thành viên của một mảng) và trong đó mỗi bộ tple trong một trang lá chứa một con trỏ đến một cây b của Poin Pointers (APosting Tree9726_9768Danh sách đăngHồi) Khi danh sách đủ nhỏ để phù hợp với một chỉ kèo chấp bóng đá hôm nay duy nhất cùng với giá trị khóa.Hình 66.1Minh họa các thành phần này của chỉ kèo chấp bóng đá hôm nay gin.
kể từPostgreSQL9.1, các giá trị khóa NULL có thể được bao gồm trong chỉ kèo chấp bóng đá hôm nay. Ngoài ra, null giữ chỗ được bao gồm trong chỉ kèo chấp bóng đá hôm nay cho các kèo chấp bóng đá hôm nay được lập chỉ kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay trống để làm như vậy.
MulticolumnGinChỉ mục được triển kèo chấp bóng đá hôm nay 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 66.1. Gin Internals
Cập nhật AGinChỉ kèo chấp bóng đá hôm nay có xu hướng chậm vì tính chất nội tại của các chỉ kèo chấp bóng đá hôm nay đả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 chấp bóng đá hôm nay (một cho mỗi khóa được trích xuất từ kèo chấp bóng đá hôm nay được lập chỉ kèo chấp bóng đá hôm nay). Kể từPostgreSQL8.4,Gincó 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 chấp bóng đá hôm nay đang chờ xử lý. Khi bảng được hút bụi hoặc tự động hóa, hoặc khigin_clean_pending_list
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 chấp bóng đá hôm nay được chuyển đến chínhGinCấ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 chấp bóng đá hôm nay ban đầu. Điều này cải thiện đáng kểGinTốc độ cập nhật chỉ kèo chấp bóng đá hôm nay, 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 chấp bóng đá hôm nay đang chờ xử lý ngoài việc tìm kiếm chỉ kèo chấp bóng đá hôm nay thông thường và do đó, một danh sách lớn các kèo chấp bóng đá hôm nay đ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ớn12771_12917
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 chấp bóng đá hôm nay đang chờ xử lý có thể bị vô hiệu hóa bằng cách tắtFastupdate
tham số lưu trữ cho AGinINDEX. Nhìn thấyTạo chỉ kèo chấp bóng đá hôm nayĐể biết chi tiết.
Gin có thể hỗ trợKết hợp kèo chấp bóng đá hôm nay phần13607_13819so sánh
Phương pháp hỗ trợ). TheTrích xuất
Phương thức, thay vì trả về 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 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ánhpartial
Phương pháp.So sánhpartial
Phải trả về 0 cho khóa chỉ kèo chấp bóng đá hôm nay phù hợp, nhỏ hơn 0 đối với không phù hợp vẫn còn trong phạm vi được tìm kiếm hoặc lớn hơn 0 nếu khóa chỉ kèo chấp bóng đá hôm nay vượt quá phạm vi có thể khớp.