이 문서는 지원되지 않는 버전의 토토 사이트 순위을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다토토 베이 : 문서 : 17 : 53.1. 토토 베이버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

46.1. 토토 사이트 순위

프로토콜에는 시작 및 정상에 대한 별도의 단계가 있습니다 작업. 시작 단계에서 프론트 엔드는 연결을 엽니 다 서버에 대한 만족으로 인증됩니다. 섬기는 사람. (여기에는 단일 메시지 또는 여러 가지가 포함될 수 있습니다 사용중인 인증 방법에 따라 메시지.) if 모든 것이 잘 진행되고 서버는 상태 정보를 프론트 엔드, 마침내 정상적인 작업에 들어갑니다. 제외하고 초기 스타트 업 요청 메시지, 프로토콜 의이 부분은 다음과 같습니다 서버에 의해 구동.

정상 작동 중에 프론트 엔드는 쿼리 및 기타를 보냅니다 백엔드 명령 및 백엔드는 쿼리 결과를 다시 보냅니다. 그리고 다른 응답. 몇 가지 사례가 있습니다 (예 :Notify) 백엔드는 원치 않는 보내지 않습니다 메시지이지만 대부분의 경우 세션 의이 부분은 다음과 같습니다. 프론트 엔드 요청에 의해 주도됩니다.

세션 종료는 일반적으로 Frontend 선택에 의한 것이지만 어떤 경우에는 백엔드에 의해 강요 될 수 있습니다. 어쨌든 언제 백엔드는 연결을 닫고 열린 모든 롤백을 롤백합니다. (불완전한) 종료하기 전의 거래.

정상 작동 내에서 SQL 명령을 실행할 수 있습니다 두 개의 하위 프로토콜 중 하나입니다. 에서"간단합니다 질문"프로토콜, 프론트 엔드는 텍스트 쿼리를 보냅니다 문자열은 백엔드에 의해 구문 분석되고 즉시 실행됩니다. 에서"확장 쿼리"프로토콜, 쿼리 처리는 여러 단계로 구분됩니다 : 구문 분석, 매개 변수 값의 바인딩 및 실행. 이것은 제공합니다 추가 비용으로 유연성 및 성능 이점 복잡성.

정상 작동에는 특별한 서브 프로토콜이 있습니다 와 같은 작업COPY.

46.1.1. 메시징 토토 사이트 순위

모든 커뮤니케이션은 메시지 흐름을 통해 이루어집니다. 첫 번째 메시지의 바이트는 메시지 유형을 식별하고 다음을 식별합니다. 4 바이트는 나머지 메시지의 길이를 지정합니다 (이것은 길이 수에는 자체가 포함되지만 메시지 유형 바이트는 포함되지 않습니다). 메시지의 나머지 내용은 메시지 유형. 역사적 이유로 첫 번째 메시지입니다 클라이언트 (시작 메시지)가 보낸 초기가 없습니다. 메시지 유형 바이트.

메시지 스트림과 동기화를 잃지 않도록, 서버와 클라이언트는 일반적으로 전체 메시지를 처리를 시도하기 전에 버퍼 (바이트 카운트 사용) 그 내용. 오류가 감지되면 쉽게 복구 할 수 있습니다 내용을 처리하는 동안. 극단적 인 상황에서 (예 : 메시지를 버퍼링하기에 충분한 메모리가 없음), 수신기 바이트 수를 사용하여 건너 뛰는 입력의 양을 결정할 수 있습니다. 메시지 읽기를 재개하기 전에.

반대로, 서버와 클라이언트는 절대로주의를 기울여야합니다. 불완전한 메시지를 보내십시오. 이것은 일반적으로 마샬링에 의해 수행됩니다 보내기 시작하기 전에 버퍼의 전체 메시지. 만약에 커뮤니케이션 실패는 전송을 통해 부분적으로 발생합니다 메시지를받는 것은 유일한 현명한 응답은 포기하는 것입니다. 회복 할 희망이 거의 없기 때문에 연결 메시지마다 동기화.

46.1.2. 확장 쿼리 토토 사이트 순위

확장 쿼리 프로토콜에서 SQL 명령의 실행은 다음과 같습니다 여러 단계로 나뉩니다. 국가는 계단 사이에 보유됩니다 두 가지 유형의 객체로 표시됩니다.준비된 진술and포털. 준비된 진술은 구문 분석, 시맨틱 분석 및 (선택적으로) 계획의 결과 텍스트 쿼리 문자열의. 준비된 진술은 아닙니다 구체적으로 부족할 수 있기 때문에 반드시 실행할 준비가되었습니다 에 대한 값매개 변수. 포털 즉시 실행 가능하거나 이미 입자가 실행 된 것을 나타냅니다 누락 된 매개 변수 값이 채워진 명령문. (forselect진술, 포털은입니다 열린 커서에 해당하지만 우리는 다른 것을 사용하기로 선택합니다. Cursors가 비 처리하지 않기 때문에 용어select진술.)

전체 실행주기는 A로 구성됩니다.ParseStep, 준비된 진술을 만듭니다 텍스트 쿼리 문자열에서; 에이bindStep, 준비된 진술과 함께 포털을 생성하고 필요한 매개 변수에 대한 값; 그리고 Aexecute포털 쿼리를 실행하는 단계. 에서 행을 반환하는 쿼리의 경우 (select, 등), 실행 단계는 제한된 수의 만을 가져 오라고 말할 수 있습니다. 여러 실행 단계가 필요할 수 있도록 행 작업을 완료하십시오.

백엔드는 여러 준비된 진술을 추적 할 수 있습니다 그리고 포털 (그러나 세션 내에 만 존재한다는 점에 유의하십시오. 세션에서 공유되지 않습니다). 기존 준비 진술과 포털은 언제 지정된 이름으로 참조됩니다 그들은 창조되었습니다. 또한"이름없는"준비된 진술과 포털이 존재합니다. 이것들은 이름이 지정된 객체와 거의 동일하게 행동하지만 그들에 대한 운영은 한 번만 쿼리 한 다음 버려지는 반면 이름이 지정된 객체는 다중의 기대에 따라 최적화됩니다 사용.

46.1.3. 형식 및 형식 코드

특정 데이터 유형의 데이터가 전송 될 수 있습니다. 몇 가지 다른형식. 기준토토 사이트 순위7.4 유일한 지원되는 형식은"텍스트"and"바이너리", 그러나 프로토콜이 만듭니다 향후 확장을위한 조항. 원하는 형식 값은 A에 의해 지정됩니다.형식 코드. 클라이언트는 전송 된 각각의 형식 코드를 지정할 수 있습니다 매개 변수 값 및 각 쿼리 결과 열에 대해. 텍스트가 있습니다 형식 코드 Zero, Binary에는 형식 코드 1 및 기타 모든 것이 있습니다. 형식 코드는 향후 정의를 위해 예약되어 있습니다.

값의 텍스트 표현은 문자열이 무엇이든간에 있습니다 입력/출력 변환 함수에 의해 생성 및 허용됩니다 특정 데이터 유형의 경우. 전송에서 표현, 후행 널 캐릭터는 없습니다. 그만큼 프론트 엔드는 처리하려면 수신 값에 하나를 추가해야합니다. C 줄로. (텍스트 형식은 내장을 허용하지 않습니다 그건 그렇고 널.)

정수에 대한 이진 표현은 네트워크 바이트 순서를 사용합니다 (가장 중요한 바이트는 먼저). 다른 데이터 유형은 바이너리에 대해 배우는 문서 또는 소스 코드 대표. 이진 표현을 명심하십시오 복잡한 데이터 유형은 서버 버전에서 변경 될 수 있습니다. 그만큼 텍스트 형식은 일반적으로 더 휴대용 선택입니다.