Mysql API 查询优化 为什么要选用预处理语

 我来答
就烦条0o
2018-07-31 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
使用预处理语句会比多次执行查询效率高的多,原因如下:
1. 服务器只需要解析一次查询,这节约了解析和其他的开销
2. 因为服务器缓存了一部分执行计划,所以它只需要执行某些优化步骤一次
3. 通过二进制发送参数比通过ASCII 码要快的多。比如,通过二进制发送DATE 类型的参数只需要3 个字节,但通过ASCII 码发送要10 个字节。节约的效果对于BLOB 和TEXT 类型最为显著,因为它们可以成块的发送,而不是一个个的发送。二进制协议也帮助客户端节约了内存,同时减少了网络开销和数据从本身的类型转换为非二进制协议的开销。
4. 整个查询不会被发送到服务器,只有参数才会被发送,这减少了网络流量。
5. Mysql 直接把参数保存在服务器的缓冲区内,不需要在内存中到处copy 数据
6. 预处理语句对安全性也有好处,它不需要在应用程序中对值进行转义和加引号,这更加方便,并且减少了遭SQL 注入攻击的可能性。
郭富成d12
2018-03-06 · TA获得超过591个赞
知道小有建树答主
回答量:5692
采纳率:41%
帮助的人:488万
展开全部
Mysql4.1
及更高版本支持服务器端的准备语句(prepared statements)
,它使用增强的二进制客户端/
服务器协议在客户端和服务器端之间高校的发送数据。

创建预处理语句时,客户端会向服务器发送一个实际查询的原型,然后服务器对该原型进行解析和处理,将部分优化过的原型保存起来,并且给客户端返回一个状态句柄。客户端可以通过定义状态句柄重复的执行查询。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式