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

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

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

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

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

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

有关可用作准备语句的 SQL 语句列表,请参阅准备语句

检测到准备好的语句引用的表或视图的元数据更改,并在下次执行语句时自动重新准备语句。有关详细信息,请参阅 准备好的语句和存储程序的缓存