PostgreSQL: kèo chấp bóng đá | |||
---|---|---|---|
prev | UP | Chương 55. Định nghĩa giao diện phương thức truy cập chỉ kèo bóng đá hôm nay và ngày mai | NEXT |
9752_9894Khóa kèo bóng đá hôm nay và ngày mai. Phương thức truy cập làkhông9994_10163
Khóa kèo bóng đá hôm nay và ngày mai 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ố, trong đó khóa chỉ kèo bóng đá hôm nay và ngày mai là một trong các cột của chỉ kèo bóng đá hôm nay và ngày mai và toán tử là một trong những thành viên của họ vận hành liên kết với cột chỉ kèo bóng đá hôm nay và ngày mai đó. Quét chỉ kèo bóng đá hôm nay và ngày mai 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ỉ kèo bóng đá hôm nay và ngày mai 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ỉ kèo bóng đá hôm nay và ngày mai sẽ trả về tất cả các kèo bóng đá hôm nay và ngày mai nhập vượt qua khóa quét, cộng với các kèo bóng đá hôm nay và ngày mai có thể không. Sau đó, máy móc quét chỉ kèo bóng đá hôm nay và ngày mai của hệ thống lõi sẽ áp dụng lại các điều kiện chỉ kèo bóng đá hôm nay và ngày mai cho bộ phận heap để xác minh xem nó có thực sự nên được chọn hay không. Nếu tùy chọn kiểm tra lại không được chỉ định, quét chỉ kèo bóng đá hôm nay và ngày mai phải trả về chính xác tập hợp các kèo bóng đá hôm nay và ngày mai khớp.
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 đá hôm nay và ngày mai 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ảWHEREkèo bóng đá hôm nay và ngày mai điều khoản phù hợp với kèo bóng đá hôm nay và ngày mai phím chỉ số 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 đá hôm nay và ngày mai B-cây, nó được để lại cho B-TreeAmrescan
Hàm để nhận ra rằng khóa kèo bóng đá hôm nay và ngày mai đầu tiên là dự phòng và có thể bị loại bỏ. Mức độ tiền xử lý cần thiết trongAmrescan
sẽ phụ thuộc vào mức độ mà phương thức truy cập chỉ kèo bóng đá hôm nay và ngày mai cần giảm các phím quét thành A"Bình thường hóa"Mẫu.
Một số phương thức truy cập trả về các kèo bóng đá hôm nay và ngày mai nhập chỉ kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai theo thứ tự tự nhiên của dữ liệu của chúng (như Btree) sẽ đặtpg_am.AmcanorderĐể đúng. Hiện tại, kèo bóng đá hôm nay và ngày mai phương thức truy cập như vậy phải sử dụng kèo bóng đá hôm nay và ngày mai số chiến lược tương thích BTREE cho kèo bóng đá hôm nay và ngày mai toán tử bình đẳng và đặt hàng của chúng.
Phương thức truy cập hỗ trợ kèo bóng đá hôm nay và ngày mai toán tử đặt hàng nên đặtpg_am.Amcanorderbyopđể đúng. Điều này chỉ ra rằng chỉ kèo bóng đá hôm nay và ngày mai có khả năng trả lại các kèo bóng đá hôm nay và ngày mai theo thứ tự thỏa mãn12852_12862 index_key Nhà điều hành hằng số. kèo bóng đá hôm nay và ngày mai các công cụ sửa đổi của biểu mẫu đó có thể được chuyển choAmrescan
Như đã mô tả trước đây.
TheAmgettuple
Hà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 sauAmrescan
Chỉ địnhBackwardscandirection13478_13606Amgettuple
phải trả lại bộ tuple khớp cuối cùng trong chỉ kèo bóng đá hôm nay và ngày mai, 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,Amgettuple
13905_14012pg_am.Amcanbackwardlà sai, tất cả kèo bóng đá hôm nay và ngày mai 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ợ kèo bóng đá hôm nay và ngày mai theo thứ tự phải hỗ trợ"Đánh dấu"Một vị trí trong kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai; một mớiAmmarkpos
Cuộc gọi ghi đè vị trí được đánh dấu trước đó. Một phương thức truy cập không hỗ trợ kèo bóng đá hôm nay và ngày mai theo thứ tự vẫn sẽ cung cấp các chức năng đánh dấu và khôi phục trongpg_am, nhưng đủ để họ ném lỗi nếu được gọi.
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 đá hôm nay và ngày mai. Sẽ không sao nếu một kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai 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 đá hôm nay và ngày mai 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 đá hôm nay và ngày mai trả về không được chèn hoặc xóa.
Nếu chỉ kèo bóng đá hôm nay và ngày mai lưu trữ các giá trị dữ liệu được lập chỉ kèo bóng đá hôm nay và ngày mai ban đầu (và không phải là một số biểu diễn tổn thất của chúng), thì rất hữu ích khi hỗ trợ các lần quét chỉ chỉ kèo bóng đá hôm nay và ngày mai, trong đó chỉ kèo bóng đá hôm nay và ngày mai trả về dữ liệu thực tế không chỉ là tid của bộ nạp. Điều này sẽ chỉ hoạt động 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 đá hôm nay và ngày mai bằngAmgetbitmap
Để tìm nạp tất cả kèo bóng đá hôm nay và ngày mai 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ớiAmgettuple
Vì nó cho phép tránh kèo bóng đá hôm nay và ngày mai chu kỳ khóa/mở khóa trong phương thức truy cập. Về nguyên tắcAmgetbitmap
nên có kèo bóng đá hôm nay và ngày mai hiệu ứng tương tự như lặp lạiAmgettuple
Cuộ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 đá hôm nay và ngày mai vấn đề. Đầu tiên,Amgetbitmap
Trả 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 đá hôm nay và ngày mai không được hỗ trợ. Thứ hai, các bộ dữAmgetbitmap
khô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 đá hôm nay và ngày mai. Cuối cùng,Amgetbitmap
Không đảm bảo bất kỳ khóa nào của kèo bóng đá hôm nay và ngày mai bộ dữ liệu được trả lại, với kèo bóng đá hôm nay và ngày mai hàm ý được đánh vần trongPhần 55.4.
Lưu ý rằng nó được phép cho một phương thức truy cập chỉ thực hiệnAmgetbitmap
và khôngAmgettuple
hoặ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.