PostgreSQL: soi kèo bóng đá truoctran | |||
---|---|---|---|
prev | UP | Chương 50. Giao thức Frontend/phụ trợ | NEXT |
Giao thức có kèo bóng đá c1 giai đoạn riêng cho khởi động và hoạt động bình thường. Trong giai đoạn khởi động, Frontend mở kết nối với máy chủ và tự xác thực với sự hài lòng của máy chủ.
Trong quá trình hoạt động thông thường, Frontend gửi kèo bóng đá c1 truy vấn và kèo bóng đá c1 lệnh khác đến phụ trợ và phần phụ trợ gửi kết quả truy vấn trở lại và kèo bóng đá c1 câu trả lời khác. Có một vài trường hợp (chẳng hạn nhưThông báo) Trong đó phần phụ trợ sẽ gửi tin nhắn không được yêu cầu, nhưng phần lớn phần này của phiên này được điều khiển bởi kèo bóng đá c1 yêu cầu Frontend.
Việc chấm dứt phiên thường là do Frontend Choice, nhưng có thể bị ép buộc bởi phụ trợ trong một số trường hợp nhất định. Trong mọi trường hợp, khi phụ trợ đóng kết nối, nó sẽ quay lại bất kỳ giao dịch mở (không đầy đủ) trước khi thoát.
Trong hoạt động bình thường, kèo bóng đá c1 lệnh SQL có thể được thực thi thông qua một trong hai giao thức phụ. Trong"Truy vấn đơn giản"Giao thức, Frontend chỉ cần gửi một chuỗi truy vấn văn bản, được phân tích cú pháp và ngay lập tức được thực hiện bởi phụ trợ. Trong"Truy vấn mở rộng"Giao thức, xử lý kèo bóng đá c1 truy vấn được tách thành nhiều bước: phân tích cú pháp, liên kết kèo bóng đá c1 giá trị tham số và thực thi. Điều này mang lại lợi ích linh hoạt và hiệu suất, với chi phí phức tạp hơn.
Hoạt động bình thường có kèo bóng đá c1 giao thức phụ bổ sung cho kèo bóng đá c1 hoạt động đặc biệt nhưCopy.
Tất cả kèo bóng đá c1 giao tiếp đều thông qua một luồng tin nhắn. Byte đầu tiên của một tin nhắn xác định loại tin nhắn và bốn byte tiếp theo chỉ định độ dài của phần còn lại của tin nhắn (số lượng độ dài này bao gồm chính nó, nhưng không phải là byte loại tin nhắn).
Để tránh mất đồng bộ hóa với luồng thông báo, cả máy chủ và máy khách thường đọc toàn bộ kèo bóng đá c1 nhắn vào bộ đệm (sử dụng số byte) trước khi thử xử lý nội dung của nó. Điều này cho phép phục hồi dễ dàng nếu phát hiện lỗi trong khi xử lý nội dung.
Ngược lại, cả máy chủ và máy khách phải cẩn thận không bao giờ gửi kèo bóng đá c1 nhắn không đầy đủ. Điều này thường được thực hiện bằng cách sắp xếp toàn bộ kèo bóng đá c1 nhắn trong bộ đệm trước khi bắt đầu gửi nó.
Trong giao thức Trận đấu mở rộng, việc thực thi kèo bóng đá c1 lệnh SQL được chia thành nhiều bước. Trạng thái được giữ lại giữa kèo bóng đá c1 bước được biểu thị bằng hai loại đối tượng:Câu lệnh được chuẩn bịvàCổng. Một câu lệnh đã chuẩn bị đại diện cho kết quả phân tích phân tích và ngữ nghĩa của chuỗi truy vấn văn bản.tham số. Một cổng thông kèo bóng đá c1 đại diện cho một câu lệnh sẵn sàng để thực hiện hoặc đã được thực hiện trong phần, với bất kỳ giá trị tham số bị thiếu nào được điền vào. (Đối vớiChọnCâu lệnh, một cổng thông kèo bóng đá c1 tương đương với con trỏ mở, nhưng chúng tôi chọn sử dụng một thuật ngữ khác vì con trỏ không xử lý khôngChọnCâu lệnh.)
Chu kỳ thực thi tổng thể bao gồm mộtParseBước, tạo ra một câu lệnh đã chuẩn bị từ chuỗi truy vấn văn bản; MộtBINDBước, tạo ra một cổng thông kèo bóng đá c1 được đưa ra một câu lệnh và giá trị đã chuẩn bị cho bất kỳ tham số cần thiết nào; và mộtthực thiBước chạy truy vấn của cổng. Trong trường hợp truy vấn trả về hàng (Chọn, show, v.v.), bước thực thi có thể được yêu cầu chỉ tìm nạp một số lượng hạn chế, để có thể cần nhiều bước thực thi để hoàn thành thao tác.
Phần phụ trợ có thể theo dõi nhiều câu lệnh và cổng được chuẩn bị (nhưng lưu ý rằng chúng chỉ tồn tại trong một phiên và không bao giờ được chia sẻ trong kèo bóng đá c1 phiên). kèo bóng đá c1 câu lệnh và cổng thông tin được chuẩn bị hiện tại được tham chiếu bằng kèo bóng đá c1 tên được gán khi chúng được tạo."Không tên"Câu lệnh và cổng thông tin đã được chuẩn bị tồn tại. Mặc dù chúng hoạt động phần lớn giống như kèo bóng đá c1 đối tượng được đặt tên, kèo bóng đá c1 hoạt động trên chúng được tối ưu hóa cho trường hợp thực hiện truy vấn chỉ một lần và sau đó loại bỏ nó, trong khi kèo bóng đá c1 hoạt động trên kèo bóng đá c1 đối tượng được đặt tên được tối ưu hóa dựa trên kỳ vọng của nhiều cách sử dụng.
Dữ liệu của một loại dữ liệu cụ thể có thể được truyền trong bất kỳ một số khác nhauĐịnh dạng. Kể từPostgreSQL7.4 kèo bóng đá c1 định dạng được hỗ trợ duy nhất là"Text"và"nhị phân", nhưng giao thức cung cấp cho kèo bóng đá c1 phần mở rộng trong tương lai. Định dạng mong muốn cho bất kỳ giá trị nào được chỉ định bởi AMã định dạng. Máy khách có thể chỉ định mã định dạng cho mỗi giá trị tham số được truyền và cho mỗi cột của kết quả truy vấn.
Biểu diễn văn bản của kèo bóng đá c1 giá trị là bất kỳ chuỗi nào được tạo và chấp nhận bởi kèo bóng đá c1 hàm chuyển đổi đầu vào/đầu ra cho kiểu dữ liệu cụ thể. Trong biểu diễn truyền tải, không có nhân vật null nào theo dõi;
Đại diện nhị phân cho số nguyên sử dụng thứ tự byte mạng (byte kèo bóng đá c1 trọng nhất trước tiên). Đối với các loại dữ liệu khác, hãy tham khảo tài liệu hoặc mã nguồn để tìm hiểu về biểu diễn nhị phân.