MySQL 5.6 C API开发指南/ C API预制语句接口

第六章C API预估语句接口

MySQL客户端/服务器协议提供了准备语句的使用。此功能使用MYSQL_STMT方法返回的语句处理程序数据结构mysql_stmt_init ()初始化函数。准备执行是一种多次执行语句的有效方法。首先解析语句以准备执行。然后在稍后使用初始化函数返回的语句处理程序执行一次或多次。

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

在某些情况下,预准备语句可能无法提高性能。为获得最佳结果,请同时使用准备语句和非准备语句测试应用程序,并选择性能最佳的语句。

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

有关可作为准备语句使用的SQL语句列表,请参见准备好的语句

对准备语句引用的表或视图的元数据更改将被检测到,并在下一次执行语句时自动重新准备语句。有关更多信息,请参见预处理语句和存储程序的缓存