mysql大事务commit快_MYSQL事务他快你慢,都是你自己惹的祸

实际事务DB里面常见的东西,没有事务的DB 那就不是DB ,但同样完成一个功能,并且书写也相似的存储过程逻辑(事务),怎么就快慢不一。

下面就来一个例子开刀, 下面是两个存储过程,往一个表里面插入10万条数据,同样的数据最后不一样的耗时。一个要将近1分钟,另一个 5秒钟,同样的功能,同样的结果。

下面是两个存储过程

建表语句

快的那个存储过程

慢的要死的存储过程

实际上两个存储过程,唯一的不一样在于对commit 的时机的把控,一个是每个插一条就要commit一次,另一个是在循环完毕后,在进行数据的commit;

这与mysql的redo 的原理有关。当然如果第二个存储过程将

set @@session.autocommit=0;

去掉

并且也将 start transactionl , commit 去掉,那结果也是一样的慢,MYSQL 默认是 auto commit 自动提交,这点与oracle 是不一样的。

那PostgreSQL 是不是也是这样,在实验中,使用不同样的方法处理的时间大致是相同的,相关的问题 下次说

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值