Mysql API 查询优化 为什么要选用预处理语句( mysql_stmt_* )

本文探讨了在MySQL API中为何选择预处理语句(mysql_stmt_*)而非直接使用mysql_query进行查询的原因。预处理语句提供性能提升,包括服务器端解析查询的优化、二进制协议的数据传输速度以及安全性增强,减少SQL注入风险。然而,它也有一些限制,如只能在单个连接中使用,不适用于早期MySQL版本的缓存,以及一次性使用时的准备成本。建议查阅《高性能MySQL》以获取更详细信息。
摘要由CSDN通过智能技术生成

         上一篇《基于MYSQL的网络游戏多线程数据库服务器设计与实现》 中说到, mysql 提供的API 操作数据库时,我们选用预处理方式即mysql_stmt_* 系列函数。为什么选用预处理语句,而不直接用mysql_query 进行查询呢? 下面说下预处理语句的优缺点:

         Mysql4.1 及更高版本支持服务器端的准备语句(prepared statements) ,它使用增强的二进制客户端/ 服务器协议在客户端和服务器端之间高校的发送数据。

         创建预处理语句时,客户端会向服务器发送一个实际查询的原型,然后服务器对该原型进行解析和处理,将部分优化过的原型保存起来,并且给客户端返回一个状态句柄。客户端可以通过定义状态句柄重复的执行查询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值