mysql建表语句转oracle_MYSQL事务他快你慢,都是你自己惹的祸

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

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

2a5dc9ca96953f88849b7553ecddd4f8.png

下面是两个存储过程

建表语句

f175d4779c1fce94e8b01ecc0afa061d.png

快的那个存储过程

ca3c5106790aa1ec01ebf0828460bad9.png

慢的要死的存储过程

944c9b0843486d7afe0a1f2b7a3cd54b.png

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

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

set @@session.autocommit=0;

去掉

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

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

bbfb902aec88ded8e0d90f1772c2db20.png

9ff8b0d46169d874f643560a66c73466.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值