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 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong kèo bóng đá pháp phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

60.3. Quét chỉ kèo bóng đá pháp

Trong quét chỉ kèo bóng đá pháp, phương thức truy cập chỉ kèo bóng đá pháp chịu trách nhiệm lấy lại các tids của tất cả các bộ dữKhóa kèo bóng đá pháp. Phương thức truy cập làkhông10288_10457

Khóa kèo bóng đá pháp là biểu diễn bên trong củaWHEREmệnh đề của biểu mẫuindex_key Nhà điều hành hằng số10717_11017

Phương thức truy cập có thể báo cáo rằng chỉ kèo bóng đá pháp làMất11102_11541

Lưu ý rằng nó hoàn toàn tùy thuộc vào phương thức truy cập để đảm bảo rằng nó tìm thấy chính xác tất cả và chỉ các kèo bóng đá pháp nhập vượt qua tất cả các khóa quét đã cho. Ngoài ra, hệ thống cốt lõi sẽ chỉ cần xử lý tất cảWHERECác điều khoản phù hợp với các khóa chỉ kèo bóng đá pháp và họ vận hành, mà không có bất kỳ phân tích ngữ nghĩa nào để xác định xem chúng có dư thừa hay mâu thuẫn hay không. Ví dụ, đã choTrong đó x 4 và x 14WHERExlà cột được lập chỉ kèo bóng đá pháp B-cây, nó được để lại cho B-TreeAmrescanHàm để nhận ra rằng khóa kèo bóng đá pháp đầu tiên là dự phòng và có thể bị loại bỏ. Mức độ tiền xử lý cần thiết trongAmrescansẽ phụ thuộc vào mức độ mà phương thức truy cập chỉ kèo bóng đá pháp cần giảm các phím quét thành Achuẩn hóaxôngMẫu.

Một số phương thức truy cập trả về các kèo bóng đá pháp nhập chỉ kèo bóng đá pháp theo thứ tự được xác định rõ, một số khác thì không. Thực tế có hai cách khác nhau mà phương thức truy cập có thể hỗ trợ đầu ra được sắp xếp:

  • Các phương thức truy cập luôn trả về các kèo bóng đá pháp theo thứ tự tự nhiên của dữ liệu của chúng (như Btree) sẽ đặtAmcanorderĐể đúng. Hiện tại, kèo bóng đá pháp phương thức truy cập như vậy phải sử dụng kèo bóng đá pháp số chiến lược tương thích BTREE cho kèo bóng đá pháp toán tử bình đẳng và đặt hàng của chúng.

  • kèo bóng đá pháp phương thức truy cập hỗ trợ kèo bóng đá pháp toán tử đặt hàng nên đặtAmcanorderbyopđể đúng. Điều này chỉ ra rằng chỉ kèo bóng đá pháp có khả năng trả lại các kèo bóng đá pháp theo thứ tự thỏa mãnĐặt hàng bởi index_key Nhà điều hành hằng số. kèo bóng đá pháp các công cụ sửa đổi của biểu mẫu đó có thể được chuyển choAmrescanNhư đã mô tả trước đây.

TheAmgettupleHàm cóHướngĐối số, có thể làForwardScandItion(trường hợp bình thường) hoặcBackwardscandirection. Nếu cuộc gọi đầu tiên sauAmrescanChỉ địnhBackwardscandirection13957_14085Amgettuplephải trả về bộ tuple phù hợp cuối cùng trong chỉ kèo bóng đá pháp, thay vì cái đầu tiên như bình thường. (Điều này sẽ chỉ xảy ra cho các phương thức truy cập đặtAmcanorderĐúng.) Sau cuộc gọi đầu tiên,Amgettuplephải chuẩn bị để tiến hành quét theo một trong hai hướng từ kèo bóng đá pháp nhập được trả về gần đây nhất. (Nhưng nếuAmcanbackward14539_14620

Phương pháp truy cập hỗ trợ kèo bóng đá pháp phải hỗ trợHồiĐánh dấuMột vị trí trong kèo bóng đá pháp và sau đó trở về vị trí được đánh dấu. Cùng một vị trí có thể được khôi phục nhiều lần. Tuy nhiên, chỉ cần một vị trí cần được ghi nhớ mỗi lần kèo bóng đá pháp; một mớiAmmarkposcuộc gọi ghi đè vị trí được đánh dấu trước đó. Phương thức truy cập không hỗ trợ kèo bóng đá pháp theo thứ tự không cần cung cấpAmmarkposAmrestrposChức năng trongindexAmRoutine; Thay vào đó, đặt những con trỏ đó thành NULL.

Cả vị trí quét và vị trí đánh dấu (nếu có) phải được duy trì một cách nhất quán khi đối mặt với các phần chèn hoặc xóa đồng thời trong chỉ kèo bóng đá pháp. Sẽ không sao nếu một kèo bóng đá pháp nhập mới được chật chội không được trả lại bằng cách quét sẽ tìm thấy kèo bóng đá pháp nhập nếu nó tồn tại khi quét bắt đầu hoặc để quét để trả lại một kèo bóng đá pháp như vậy khi giải cứu hoặc sao lưu mặc dù lần đầu tiên nó chưa được trả lại. Tương tự, việc xóa đồng thời có thể hoặc không thể được phản ánh trong kết quả quét. Điều quan trọng là việc chèn hoặc xóa không khiến việc quét hoặc nhân các kèo bóng đá pháp trả về không được chèn hoặc xóa.

Nếu chỉ kèo bóng đá pháp lưu trữ các giá trị dữ liệu được lập chỉ kèo bóng đá pháp gốc (và không phải là một số đại diện mất mát của chúng), thì rất hữu ích để hỗ trợPostgresql: Tài liệu: 10:, trong đó chỉ kèo bóng đá pháp trả về dữ liệu thực tế không chỉ là tid của bộ tuple. Điều này sẽ chỉ tránh I/O nếu bản đồ hiển thị cho thấy rằng TID nằm trên một trang hoàn toàn có thể nhìn thấy; Nếu không thì tuple heap phải được truy cập bằng mọi cách để kiểm tra khả năng hiển thị của MVCC. Nhưng đó không phải là mối quan tâm của phương thức truy cập.

Thay vì sử dụngAmgettuple, có thể thực hiện quét chỉ kèo bóng đá pháp bằngAmgetbitmapĐể tìm nạp tất cả kèo bóng đá pháp bộ dữ liệu trong một cuộc gọi. Điều này có thể hiệu quả hơn đáng kể so vớiAmgettupleVì nó cho phép tránh kèo bóng đá pháp chu kỳ khóa/mở khóa trong phương thức truy cập. Về nguyên tắcAmgetbitmapnên có kèo bóng đá pháp hiệu ứng giống như lặp lạiAmgettupleCuộc gọi, nhưng chúng tôi áp đặt một số hạn chế để đơn giản hóa kèo bóng đá pháp vấn đề. Đầu tiên,AmgetbitmapTrả về tất cả các bộ dữ liệu cùng một lúc và đánh dấu hoặc khôi phục các vị trí kèo bóng đá pháp không được hỗ trợ. Thứ hai, các bộ dữAmgetbitmapkhông lấyHướngĐối số. .Amgetbitmap, vì không có cách nào để trả về nội dung của các bộ dữ liệu chỉ kèo bóng đá pháp. Cuối cùng,AmgetbitmapKhông đảm bảo bất kỳ khóa nào của kèo bóng đá pháp bộ dữ liệu được trả lại, với kèo bóng đá pháp hàm ý được đánh vần trongPhần 60.4.

Lưu ý rằng nó được phép cho một phương thức truy cập chỉ thực hiệnAmgetbitmapvà khôngAmgettuplehoặc ngược lại, nếu việc triển khai nội bộ của nó không phù hợp với một API hoặc API khác.