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 soi kèo bóng đá truoctran phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

61.3. Quét chỉ soi kèo bóng đá truoctran

10140_10282Khóa soi kèo bóng đá truoctran. Phương thức truy cập làkhông10381_10550

Khóa soi kèo bóng đá truoctran là biểu diễn nội bộ củaWHEREmệnh đề của biểu mẫuindex_key Nhà điều hành hằng số, trong đó khóa chỉ soi kèo bóng đá truoctran là một trong các cột của chỉ soi kèo bóng đá truoctran và toán tử là một trong những thành viên của họ toán tử được liên kết với cột chỉ soi kèo bóng đá truoctran đó. Quét chỉ soi kèo bóng đá truoctran không có khóa quét hoặc nhiều hơn, được và được hoàn toàn - các bộ dữ liệu được trả về dự kiến ​​sẽ đáp ứng tất cả các điều kiện được chỉ định.

Phương thức truy cập có thể báo cáo rằng chỉ soi kèo bóng đá truoctran làMấthoặc yêu cầu kiểm tra lại, cho một truy vấn cụ thể. Điều này ngụ ý rằng việc quét chỉ soi kèo bóng đá truoctran sẽ trả về tất cả các soi kèo bóng đá truoctran nhập vượt qua khóa quét, cộng với các soi kèo bóng đá truoctran có thể không.

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 soi kèo bóng đá truoctran 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ỉ soi kèo bóng đá truoctran 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ỉ soi kèo bóng đá truoctran B-cây, nó được để lại cho B-TreeAmrescanHàm để nhận ra rằng khóa soi kèo bóng đá truoctran đầ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ỉ soi kèo bóng đá truoctran cần giảm các phím quét thành A12521_12533Mẫu.

Một số phương thức truy cập trả về các soi kèo bóng đá truoctran nhập chỉ soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran theo thứ tự tự nhiên của dữ liệu của chúng (như Btree) sẽ đặtAmcanorderĐể đúng. Hiện tại, soi kèo bóng đá truoctran phương thức truy cập như vậy phải sử dụng soi kèo bóng đá truoctran số chiến lược tương thích BTREE cho soi kèo bóng đá truoctran toán tử bình đẳng và đặt hàng của chúng.

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

TheAmgettupleHàm cóHướngĐối số, có thể làForwardScandions(trường hợp bình thường) hoặcBackwardscandirection. Nếu cuộc gọi đầu tiên sauAmrescanChỉ địnhBackwardscandirection, sau đó tập hợp các soi kèo bóng đá truoctran chỉ soi kèo bóng đá truoctran phù hợp sẽ được quét ngược lại thay vì theo hướng trước từ trước thông thường, vì vậyAmgettuplephải trả lại bộ tuple khớp cuối cùng trong chỉ soi kèo bóng đá truoctran, 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ừ soi kèo bóng đá truoctran nhập được trả về gần đây nhất. (Nhưng nếuAmcanbackwardlà sai, tất cả soi kèo bóng đá truoctran cuộc gọi tiếp theo sẽ có cùng hướng với thông tin đầu tiên.)

Các phương thức truy cập hỗ trợ soi kèo bóng đá truoctran theo thứ tự phải hỗ trợĐánh dấuMột vị trí trong soi kèo bóng đá truoctran 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.AmmarkposCuộc gọi ghi đè vị trí được đánh dấu trước đó. Phương thức truy cập không hỗ trợ soi kèo bóng đá truoctran 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ỉ soi kèo bóng đá truoctran. Sẽ không sao nếu một soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran nhập nếu nó tồn tại khi quét bắt đầu hoặc để quét để trả lại một soi kèo bóng đá truoctran 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.

16100_16224Postgresql: Tài liệu: 11: 11.9. Quét chỉ có, trong đó chỉ soi kèo bóng đá truoctran 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;

Thay vì sử dụngAmgettuple, có thể thực hiện quét chỉ soi kèo bóng đá truoctran bằngAmgetbitmapĐể tìm nạp tất cả soi kèo bóng đá truoctran 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ớiAmgettupleBởi vì nó cho phép tránh soi kèo bóng đá truoctran chu kỳ khóa/mở khóa trong phương thức truy cập. Về nguyên tắcAmgetbitmapnên có soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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í soi kèo bóng đá truoctran 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ỉ soi kèo bóng đá truoctran. Cuối cùng,AmgetbitmapKhông đảm bảo bất kỳ khóa nào của soi kèo bóng đá truoctran bộ dữ liệu được trả lại, với soi kèo bóng đá truoctran hàm ý được đánh vần trongPhần 61.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.