mysql开启批量rewriteBatchedStatements之后,遇到的坑

开启rewriteBatchedStatements后,MySQL的批量插入才生效。然而,单条或少量插入可能不会真正批量执行。文章提到,批量插入四条以上才会走批量,但若SQL以分号结尾,在批量拼接时可能导致双分号,从而引发批量操作失败。因此,建议避免在用于批量的SQL语句中使用分号结尾。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        我们知道,开启“rewriteBatchedStatements=true”之后,mysql的批量才正式生效。但是,一条两条的新增也是批量吗?

        经过抓包发现,批量插入四条触发器,会分四个包,就是走单条。抓包详情如下:

超过四条,就走批量。

此处,我遇到了一个小坑,就是批量报错。经过抓包发现,代码中我写的是完整的sql,以分号“;”结尾, 但是,批量的时候,sql在拼装的时候,会默认以“;”拼接,造成双分号。

 小结:走批量的sql慎用分号结尾,以免造成双分号导致的批量失败。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值