PostgreSQL: kèo chấp bóng đá hôm nay liệu: 9.4: PostgreSQL | |||
---|---|---|---|
prev | UP | Chương 57. Các chỉ mục sp-gist | NEXT |
Phần này bao gồm các chi tiết triển khai và các thủ thuật khác hữu ích cho người thực hiệnsp-gistCác lớp toán tử để biết.
Bộ dữ kèo bóng đá hôm nay và ngày mai lá riêng lẻ và bộ dữ kèo bóng đá hôm nay và ngày mai bên trong phải phù hợp với một trang chỉ mục duy nhất (8kb theo mặc định). Do đó, khi lập chỉ mục các giá trị của các loại dữ kèo bóng đá hôm nay và ngày mai có độ dài thay đổi, các giá trị dài chỉ có thể được hỗ trợ bằng các phương thức như cây radix, trong đó mỗi cấp độ của cây bao gồm một tiền tố đủ ngắn để phù hợp với một trang và mức lá cuối cùng bao gồm một hậu tố cũng đủ ngắn để phù hợp với trang.LongValuesokchỉ đúng nếu nó được chuẩn bị để sắp xếp điều này xảy ra. Nếu không,sp-gistCore sẽ từ chối mọi yêu cầu để lập chỉ mục một giá trị quá lớn để phù hợp với trang chỉ mục.
Tương tự như vậy, trách nhiệm của lớp vận hành là các bộ dữ kèo bóng đá hôm nay và ngày mai bên trong không phát triển quá lớn để phù hợp với trang chỉ mục; Điều này giới hạn số lượng nút con có thể được sử dụng trong một bộ bên trong, cũng như kích thước tối đa của giá trị tiền tố.
Một giới hạn khác là khi nút của một tuple bên trong chỉ vào một tập hợp các bộ dữ kèo bóng đá hôm nay và ngày mai lá, tất cả các bộ dữ kèo bóng đá hôm nay và ngày mai đó phải nằm trong cùng một trang chỉ mục. .phảiChia tập hợp các giá trị lá thành nhiều hơn một nhóm kèo bóng đá hôm nay và ngày mai. Nếu lớp vận hànhPickSplit
Hàm không làm điều đó,sp-gistKhu nghỉ dưỡng cốt lõi để các biện pháp phi thường được mô tả kèo bóng đá hôm nay và ngày maiPhần 57.4.3.
Một số thuật toán cây sử dụng một tập hợp các kèo bóng đá hôm nay và ngày mai cố định cho mỗi tuple bên trong; Ví dụ, trong một cây bốn, luôn có chính xác bốn kèo bóng đá hôm nay và ngày mai tương ứng với bốn góc phần tư xung quanh điểm trung tâm của Tuple bên trong.PickSplit
Hàm có thể trả về null choNodelabelsMảng. Điều này sẽ lần lượt dẫn đếnNodelabelsĐang null kèo bóng đá hôm nay và ngày mai các cuộc gọi tiếp theo đếnChọn
vàInside_consistent
. Về nguyên tắc, các nhãn nút có thể được sử dụng cho một số bộ dữ kèo bóng đá hôm nay và ngày mai bên trong và bị bỏ qua cho những người khác trong cùng một chỉ mục.
Khi làm việc với một tuple bên trong có các kèo bóng đá hôm nay và ngày mai không nhãn, đó là một lỗi choChọn
để trả lạispgaddnode, vì tập hợp các kèo bóng đá hôm nay và ngày mai được cho là được sửa trong các trường hợp như vậy. Ngoài ra, không có điều khoản nào để tạo một kèo bóng đá hôm nay và ngày mai không nhãn trongspgsplittupleHành động, vì người ta dự kiến sẽ là mộtspgaddnodehành động cũng sẽ cần thiết.
Thesp-gistCore có thể ghi đè kết quả của lớp vận hànhPickSplit
chức năng khiPickSplit
Không chia các giá trị lá được cung cấp thành ít nhất hai loại kèo bóng đá hôm nay và ngày mai. Khi điều này xảy ra, bộ tuple bên trong mới được tạo với nhiều kèo bóng đá hôm nay và ngày mai có cùng một nhãn (nếu có)PickSplit
Đã cho một kèo bóng đá hôm nay và ngày mai mà nó đã sử dụng và các giá trị lá được chia ngẫu nhiên giữa các kèo bóng đá hôm nay và ngày mai tương đương này. TheAllthesameCờ được đặt trên tuple bên kèo bóng đá hôm nay và ngày mai để cảnh báoChọn
vàInside_consistent
Các chức năng mà bộ tuple không có bộ kèo bóng đá hôm nay và ngày mai mà họ có thể mong đợi.
Khi xử lýAllthesametuple, aChọn
kết quả củaSPGMatchNodeđược giải thích có nghĩa là giá trị mới có thể được gán cho bất kỳ kèo bóng đá hôm nay và ngày mai tương đương nào; Mã cốt lõi sẽ bỏ qua được cung cấpNodenGiá trị và hạ xuống một trong các kèo bóng đá hôm nay và ngày mai một cách ngẫu nhiên (để giữ cho cây cân bằng). Nó là một lỗi choChọn
để trả lạispgaddnode, vì điều đó sẽ làm cho các kèo bóng đá hôm nay và ngày mai không tương đương; ThespgsplittupleHành động phải được sử dụng nếu giá trị được chèn không khớp với các kèo bóng đá hôm nay và ngày mai hiện có.
Khi xử lýAllthesametuple, TheInside_consistent
Hàm sẽ trả về tất cả hoặc không có kèo bóng đá hôm nay và ngày mai nào làm mục tiêu để tiếp tục tìm kiếm chỉ mục, vì tất cả chúng đều tương đương. Điều này có thể hoặc không yêu cầu bất kỳ mã trường hợp đặc biệt nào, tùy thuộc vào số lượngInside_consistent
Hàm thường giả sử về ý nghĩa của các kèo bóng đá hôm nay và ngày mai.