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

64.6. kèo bóng đá c1#

64.6.1. Tổng quan#

PostgreSQLBao gồm việc triển khai các kèo bóng đá c1 trên đĩa liên tục, có thể phục hồi hoàn toàn sự cố. Bất kỳ loại dữ liệu nào cũng có thể được lập chỉ mục bởi kèo bóng đá c1, bao gồm các loại dữ liệu không có thứ tự tuyến tính được xác định rõ.

Chỉ số băm chỉ hỗ trợ các chỉ kèo bóng đá c1 một cột và không cho phép kiểm tra tính duy nhất.

Chỉ số kèo bóng đá c1 chỉ hỗ trợ=toán tử, vì vậy các điều khoản chỉ định các hoạt động phạm vi sẽ không thể tận dụng các kèo bóng đá c1.

Mỗi chỉ số băm chỉ lưu trữ giá trị băm 4 byte, không phải là giá trị cột thực tế. Do đó, các chỉ số băm có thể nhỏ hơn nhiều so với B-cây khi lập chỉ kèo bóng đá c1 các kèo bóng đá c1 dữ liệu dài hơn như UUID, URL, v.v ... Sự vắng mặt của giá trị cột cũng làm cho tất cả các chỉ số băm quét mất.

Các kèo bóng đá c1 được tối ưu hóa tốt nhất cho khối lượng công việc chọn lọc và cập nhật sử dụng quét bình đẳng trên các bảng lớn hơn. Trong một chỉ mục B-Tree, các tìm kiếm phải đi xuống qua cây cho đến khi tìm thấy trang lá.

Các kèo bóng đá c1 đã được thiết kế để đối phó với các phân phối không đồng đều của các giá trị băm. Truy cập trực tiếp vào các trang xô hoạt động tốt nếu các giá trị băm được phân phối đều.

Do kết quả của các trường hợp tràn, chúng ta có thể nói rằng các kèo bóng đá c1 phù hợp nhất với dữ liệu hoặc dữ liệu gần như duy nhất hoặc dữ liệu với số lượng hàng thấp trên mỗi thùng băm. Một cách có thể để tránh các vấn đề là loại trừ các giá trị không độc đáo cao khỏi chỉ mục bằng điều kiện chỉ số một phần, nhưng điều này có thể không phù hợp trong nhiều trường hợp.

Giống như B-Trees, kèo bóng đá c1 thực hiện xóa chỉ mục đơn giản. Đây là một hoạt động bảo trì trì hoãn, xóa các bộ dữ liệu chỉ mục được biết là an toàn để xóa (những người có bit LP_Dead của định danh mục đã được đặt).

Nếu có thể, chân không cũng sẽ cố gắng bóp các bộ dữ liệu chỉ kèo bóng đá c1 lên càng ít trang tràn càng tốt, giảm thiểu chuỗi tràn. Nếu một trang tràn trở nên trống rỗng, các trang tràn có thể được tái chế để tái sử dụng trong các thùng khác, mặc dù chúng tôi không bao giờ đưa chúng trở lại hệ điều hành.

Các kèo bóng đá c1 có thể mở rộng số lượng trang xô khi số lượng hàng được lập chỉ mục tăng lên. Ánh xạ số phím từ băm được chọn để chỉ mục có thể được mở rộng theo dần.

Việc mở rộng xảy ra ở phía trước, có thể tăng thời gian thực hiện cho chèn người dùng. Do đó, các kèo bóng đá c1 có thể không phù hợp với các bảng có số lượng hàng tăng nhanh.

64.6.2. Triển khai#

Có bốn loại trang trong chỉ số kèo bóng đá c1: trang meta (trang Zero), chứa thông tin kiểm soát được phân bổ tĩnh; trang xô chính;

Cả hai đều quét chỉ kèo bóng đá c1 và chèn các bộ dữ liệu yêu cầu xác định vị trí của nhóm trong đó phải đặt một tuple nhất định. Để làm điều này, chúng ta cần số lượng xô, Highmask và Lowmask từ Metapage;

Các trang và trang tràn chính được phân bổ độc lập vì bất kỳ chỉ số nào có thể cần nhiều hoặc ít trang tràn hơn so với số lượng thùng của nó. Mã kèo bóng đá c1 sử dụng một tập hợp các quy tắc địa chỉ thú vị để hỗ trợ số lượng trang tràn biến đổi trong khi không phải di chuyển các trang xô chính xung quanh sau khi chúng được tạo.

Mỗi hàng trong bảng được lập chỉ mục được biểu thị bằng một bộ chỉ số duy nhất trong chỉ số băm. Các tổng kèo bóng đá c1 được lưu trữ trong các trang xô và nếu chúng tồn tại, các trang tràn.

Thuật toán phân tách xô để mở rộng chỉ số kèo bóng đá c1 quá phức tạp để được đề cập ở đây, mặc dù được mô tả chi tiết hơn trongsrc/backend/access/kèo bóng đá c1/readme. Thuật toán phân chia được sự cố an toàn và có thể được khởi động lại nếu không hoàn thành thành công.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài kèo bóng đá c1 không chính xác, không khớpMẫu nàyĐể báo cáo vấn đề tài kèo bóng đá c1.