MySQL 9.0 C API 开发人员指南  /  C API 预处理语句接口

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

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

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

在某些情况下,预处理语句可能无法提高性能。为了获得最佳效果,请使用预处理语句和非预处理语句测试您的应用程序,并选择性能最好的语句。

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

有关可用作预处理语句的 SQL 语句的列表,请参见 预处理语句

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