prepare

1.prepare stmt from xxx;  //用于 词法分析->语法分析->语义分析 生成一棵语法树(Lex)

2.execute stmt      //执行sql

3.deallocate prepare stmt;  //清除mysql服务器内存中这颗语法树所占用内存。说白了,清除第1步。

prepare 的目的,用于节省 词法分析->语法分析->语义分析 所占用的时间,因为每句普通的sql,比如 select xxx 或者 insert into xxx 都是要进行这些过程的。重复执行,而参数不同,没必要再各种解析的。

所以,要能发挥预处理的功能要如下写:

prepare stmt from 'insert into tab1 values ?'

SET @a = "(1,2,3)";

execute stmt using @a;

SET @a = "(4,5,6)";

execute stmt using @a;

。。。

等insert into 都执行完,再执行

deallocate prepare stmt;

prepare实际使用方式,以及实际使用效果

对于prepare的处理初衷还是考虑协议的兼容和简化处理逻辑,对于client->proxy->mysql这样接口来说,client->proxy是prepare协议,proxy->mysql是文本协议,所以整体来看在gaea环境下使用prepare性能提升有限,还是建议直接使用sql。

mysql中prepare的设计_prepare的设计与实现_蛋蛋科查尔的博客-优快云博客

prepare执行的过程:

mysql中prepare_MySQL PREPARE语句_吴冬亮的博客-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值