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