23.8.8 C API Prepared Statements
MySQL client/server 프로토콜은 준비된 명령문의 사용을 규정합니다. 이 기능은 mysql_stmt_init()
초기화 함수에 의해 반환되는 MYSQL_STMT
문 핸들러 데이터 구조를 사용합니다. 준비된 실행은 문을 여러 번 실행하기위한 효율적인 방법입니다. 문을 먼저 실행을 준비하기 위해 분석됩니다. 그 후, 초기화 함수에 의해 반환 된 문 손잡이를 사용하여 한 번 또는 여러 번 실행됩니다.
준비된 실행은 주로 쿼리가 한 번만 해석되지 않기 때문에 여러 번 실행되는 명령문의 경우 직접 실행보다 속도가 빨라집니다. 직접 실행하면 쿼리가 실행될 때마다 해석됩니다. 또한 준비된 실행은 준비된 명령문의 실행에 대해 매개 변수에 데이터를 보낼 필요가있을 뿐이다위한 네트워크 트래픽 감소도 가능합니다.
Prepared Statement은 상황에 따라 성능의 향상을 초래하지 않을 수 있습니다. 최선의 결과를 얻기 위해 준비 진술과 비 Prepared Statement 모두에서 응용 프로그램을 테스트하고 최고의 성능을 발휘하는 것을 선택하십시오.
준비 진술의 또 다른 장점은 클라이언트와 서버 간의 데이터 전송의 효율을 향상 이진 프로토콜을 사용하는 것입니다.
Prepared Statement으로 사용할 수있는 SQL 문 목록은 섹션 13.5 "준비된 명령문에 대한 SQL 구문" 을 참조하십시오.
Prepared Statement에서 참조되는 테이블이나 뷰의 메타 데이터 변경이 감지되고 그것이 다음 실행 때 문이 자동으로 다시 준비됩니다. 자세한 내용은 섹션 8.9.4 "Prepared Statement 및 저장 프로그램 캐시" 를 참조하십시오.