知识要点
- ACID/Atomicity-原子性 Consistency-一致性 IsoIation-隔离性 Durability-持久性
- IsoIation-隔离性
- 带来的问题
- 脏读 dirty read
- 不可重复读 non repeatable read
- 幻读 phantom read
- 级别
- 读未提交 read uncommitted
- 读提交 read committed
- 可重复读 repeatable read
- 串行化 serializable
- 带来的问题
- 想保证数据库隔离级别的一致性 设置为 读提交
问题思考
Q: 如何避免长事务对业务的影响?
实践
查看当前配置的事务隔离等级
mysql> show variables like 'transaction_isolation';
+-----------------------+-----------------+
| Variable_name | Value |
+-----------------------+-----------------+
| transaction_isolation | REPEATABLE-READ |
+-----------------------+-----------------+
设置当前会话事务隔离等级
mysql> set SESSION transaction_isolation="READ-COMMITTED";
transaction_isolation 文档说明
- MySQL默认事务隔离等级 REPEATABLE-READ
可选配置值有
- READ-UNCOMMITTED
- READ-COMMITTED
- REPEATABLE-READ
- SERIALIZABLE