Postgresql 8.4.22 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 52. Chỉ mục gin | Chuyển tiếp nhanh | Tiếp theo |
Nội bộ, AGinINDEX chứa một chỉ mục 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 giá trị được lập chỉ mục (một thành viên của một mảng, cho Ví dụ) và nơi mỗi bộ trong trang Lá là một con trỏ đến một cây b trên các con trỏ heap (pt, cây đăng) hoặc một danh sách HEAP POINTERS (PL, Danh sách đăng bài) Nếu danh sách đủ nhỏ.
Cập nhật AGinINDEX có xu hướng chậm vì bản chất nội tại của đảo ngược Chỉ mụ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ỉ mục (một cho mỗi khóa được trích xuất từ Giá trị được lập chỉ mục). Kể từ토토 커뮤니티 8.4, Gincó khả năng hoãn lại nhiều điều này làm việc 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 mục đang chờ xử lý. Khi bàn được hút bụi, hoặc nếu đang chờ xử lý Danh sách trở nên quá lớn (lớn hơnwork_mem), The Các mục được chuyển sang chínhGinCấu trúc dữ liệu sử dụng cùng một số lượng lớn Kỹ thuật chèn được sử dụng trong quá trình tạo chỉ số ban đầu. Cái này cải thiện rất nhiềuGinINDEX Tốc độ cập nhật, thậm chí đếm chi phí chân không bổ sung. Ngoài ra, chi phí 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 mục đang chờ xử lý ngoài việc tìm kiếm Chỉ số thông thường, và do đó, một danh sách lớn các mục đang chờ xử lý sẽ chậm tìm kiếm đáng kể. Một bất lợi 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 gây ra danh sách đang chờ xử lý trở thành"Quá lớn"Sẽ 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 chu kỳ khác cập nhật. Sử dụng đúng cách của Autovacuum có thể giảm thiểu cả hai vấn đề.
Nếu thời gian phản hồi nhất quán quan trọng hơn cập nhật Tốc độ, sử dụng các mục đang chờ xử lý có thể bị vô hiệu hóa bằng cách tắt TheFastupdateTham số lưu trữ cho AGinINDEX. Nhìn thấyTạo chỉ mụcĐể biết chi tiết.
Gin có thể hỗ trợ"Kết hợp một phần"Truy vấn, trong đó truy vấn không xác định một kết quả phù hợp chính xác
cho một hoặc nhiều phím, nhưng các trận đấu có thể xảy ra trong một
Phạm vi hẹp hợp lý của các giá trị chính (trong phân loại khóa
thứ tự được xác định bởiso sánh
Phương pháp hỗ trợ). TheTrích xuất
Phương thức, thay vì trả về giá trị khóa để phù hợp chính xác,
Trả về một giá trị khóa là giới hạn dưới của phạm vi
đã tìm kiếm và đặtpmatchcờ
ĐÚNG VẬY. Phạm vi khóa sau đó được tìm kiếm bằngSo sánhpartial
Phương pháp.so sánhspartial
Phải trả về Zero cho một thực tế
khớp, ít hơn 0 cho một không phù hợp vẫn còn trong
phạm vi sẽ được tìm kiếm hoặc lớn hơn 0 nếu khóa chỉ mục là
qua phạm vi có thể khớp.