绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
MYSQL事务他快你慢,都是你自己惹的祸
2019-10-04 06:25:27

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


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


下面是两个存储过程

建表语句

快的那个存储过程

慢的要死的存储过程

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

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

 set @@session.autocommit=0;

去掉

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


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






分享好友

分享这个小栈给你的朋友们,一起进步吧。

数据库杂货铺
创建时间:2021-12-10 09:57:47
分享数据库管理,运维,源代码 ,业界感受, 吐槽
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • liuaustin
    栈主

小栈成员

查看更多
  • miemieMIA
  • 578154454
  • ylfxml
戳我,来吐槽~