mysql事务对效率的影响分析总结
更新时间:2021年10月24日 11:10:40 作者:小妮浅浅
在本篇文章里小编给大家分享的是一篇关于mysql事务对效率的影响分析总结内容,有需要的朋友们可以跟着学习下。
1、数据库事务会降低数据库的性能。为了保证数据的一致性和隔离性,事务需要锁定事务。
2、如果其他事务需要操作这部分数据,必须等待最后一个事务结束(提交,回滚)。
实例
create table acct( acct_no varchar(32), acct_name varchar(32), balance decimal(16,2) ); insert into acct values ('0001','Jerry', 1000), ('0002','Tom', 2000); start transaction; -- 启动事务 update acct set balance = balance - 100 where acct_no = '0001'; -- 模拟扣款人 update acct set balance = balance + 100 where acct_no = '0002'; -- 模拟收款人 commit; -- 事务提交 rollback; -- 事务回滚
知识点扩展:
事务
- 原子性:整个事务的所有操作要么全部提交成功,要么全部失败回滚
- 一致性:指事务将数据库从一种一致性状态转换到另外一种一致性状态,在事务开始之前和事务结束后数据库中的完整性没有被破坏
- 隔离性:要求一个事务对数据库中数据修改,在未提交完成前对其他事务是不可见的
- 持久性:一旦事务提交,则其所做的修改就会永久保存到数据库中。此时即使系统崩溃,已经提交的修改数据也不会丢失。
大事务
运行时间比较长,操作的数据比较多的事务
- 锁定太多的数据,造成大量的阻塞和锁超时
- 回滚时所需时间比较长
- 执行时间长,容易造成主从延迟
如何处理大事务:
- 避免一次处理太多的数据
- 移出不必要在事务中的select操作
到此这篇关于mysql事务对效率的影响分析总结的文章就介绍到这了,更多相关mysql事务对效率的影响内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
MySQL关于ERROR 1290 (HY000)报错解决方法
在本篇文章里小编给大家整理的是关于MySQL关于ERROR 1290 (HY000)报错的解决方法,有兴趣的朋友们可以参考下。2019-09-09Finished with error:Navicat运行SQL文件报错的解决
这篇文章主要介绍了Finished with error:Navicat运行SQL文件报错的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-04-04
最新评论