mysql 基础(事务)
2022/5/12 19:27:25
本文主要是介绍mysql 基础(事务),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
事务四大特性:
原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。
一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态。
隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。
持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。
并发事务问题:
两个及以上事务同时操作一个数据库或表时所引发的问题
脏读:读到了其他事务未提交的数据,未提交意味着这些数据可能会回滚,也就是可能最终不会存到数据库中,也就是不存在的数据。读到了并一定最终存在的数据
不可重复读:不可重复读指的是在同一事务内,不同的时刻读到的同一批数据可能是不一样的,可能会受到其他事务的影响,比如其他事务改了这批数据并提交了。通常针对数据更新(UPDATE)操作
幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了“幻影”。针对数据插入(INSERT)操作
事务隔离级别:是用来解决并发事务问题的,事务隔离级别越高数据越安全但性能越低
隔离级别 | 脏读 | 不可重复读 | 幻读 |
Read uncommitted(读未提交) | √ | √ | √ |
Read committed(读已提交) | x | √ | √ |
Repeatable Read(mysql默认) | x | x | √ |
Serializable(串行化) | x | x | x |
查看隔离级别:
MySQL5.0+:
1.查看当前会话隔离级别
select @@tx_isolation;
2.查看系统当前隔离级别
select @@global.tx_isolation;
MySQL8.0+:
1.查看当前会话隔离级别
select @@transaction_isolation;
2.查看系统当前隔离级别
select @@global.transaction_isolation;
设置隔离级别:
1.当前会话修改
set session transaction isolation level 需要设置的事务隔离级别;
2. mysql.ini配置修改
#可选参数有:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.
[mysqld]
transaction-isolation = REPEATABLE-READ
这篇关于mysql 基础(事务)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-02MySQL 3主集群搭建
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解