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 基础(事务)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-06-30MySQL 如何查找删除重复行?
- 2022-06-30Python 连接 mysql 并查询表数据
- 2022-06-30MYSQL中的各种连表查询操作
- 2022-06-30MySQL中having与where的区别
- 2022-06-30MySQL安装详解(5.8版本以下)
- 2022-06-30mysql 的多表查询中 on 与where的区别
- 2022-06-30mysql怎么卸载干净
- 2022-06-30MySQL安装后文本20220628
- 2022-06-30win10 安装mysql5.7 超详细(亲测成功)
- 2022-06-30《MySql 学习笔记》