MySQL 8.0 C API 开发者指南  /  第 6 章 C API 预处理语句接口

第 6 章 C API 预处理语句接口

The MySQL client/server protocol provides for the use of prepared statements. This capability uses the MYSQL_STMT statement handler data structure returned by the mysql_stmt_init() initialization function. Prepared execution is an efficient way to execute a statement more than once. The statement is first parsed to prepare it for execution. Then it is executed one or more times at a later time, using the statement handler returned by the initialization function.

对于多次执行的语句,准备执行比直接执行更快,主要是因为查询只被解析一次。在直接执行的情况下,每次执行都会解析查询。准备执行还可以减少网络流量,因为对于准备语句的每次执行,只需要发送参数数据。

在某些情况下,准备好的语句可能不会提供性能提升。为获得最佳结果,请使用准备好的和非准备的语句测试您的应用程序,并选择产生最佳性能的那个。

准备好的语句的另一个优点是它使用二进制协议,使客户端和服务器之间的数据传输更加高效。

For a list of SQL statements that can be used as prepared statements, see Prepared Statements.

Metadata changes to tables or views referred to by prepared statements are detected and cause automatic repreparation of the statement when it is next executed. For more information, see Caching of Prepared Statements and Stored Programs.