-
请描述事务的四大特征 :
<1>. 原子性: 事务是一个整体 , 不可分割 , 要么同时成功, 要么同时失败.
<2>. 持久性: 当事务提交或回滚后, 数据库会持久化的保存数据.
<3>. 隔离性: 多个事务之间, 隔离开, 相互独立.
<4>. 一致性: 事务操作的前后 , 数据总量不变 (例如: 转账时: 孟亮给帅兵转账是 一个事务, 转账完毕后. 两人余额的和不变.) -
请描述什么是脏读, 幻读, 不可重复读 ?
- 脏读: 读取到了一个事务 未提交的数据.
- 不可重复读: 一个事务中, 两次连续的读取 ,结果不一致(中间被其它事务更改了).
- 幻读: 一个事务A在执行DML语句时, 另一个事务B也在执行DML语句 , B修改了A修改过的 数据, 导致A在查询时就像发生了幻觉一样(A更改的内容A看不到了.)
-
请描述事务的隔离级别
//三种级别锁: 页级,表级,行级(共享锁,排它锁).- 读未提交 : read uncommitted; (可能产生:脏读, 不可重复读, 幻读)
- 读已提交 : read committed; (可能产生: 不可重复度, 幻读)
- 可重复读 : repeatable read;(mysql默认值) (可能产生: 幻读)
- 串行化 : serializable;
- 查看数据库当前的隔离级别: select @@tx_isolation; (了解)
- 数据库设置隔离级别: set global transaction isolation level 级别字符串; (了解)