数据库复习之事务隔离级别

一、三大范式

二、sql语句的编程

三、索引底层实现

复合索引,索引失效条件,根据explain优化索引查询,会根据几个sql语句建立合适的索引。

四、存储引擎特性与区别:innodb,mylsam,mermory等

五、事务相关和锁机制

隔离级别和实现原理,可能引起的问题,使用。

六、主从复制的原理,读写分离思想

七、数据库优化(包括不限于数据库字段设计、结构设计、sql优化、索引优化等方面)

八、sql注入

事务隔离级别
一、丢失的数据
原因:两个事务T1和T2同时修改数据,T2提交的结果覆盖了T1提交的结果。
比如银行账户原有100元,T1,T2同时读到100元,T1增加了50元,T2取出30元,正确的结果应该还剩120元。T2覆盖了T1的结果,账户只剩70元。
解决:排他锁(X锁),对象只能有一个排他锁。T1在操作的过程对对象加锁,T2获取锁失败。等T1完成事务的时候,释放锁后,T2获取对象的锁。

事务T1 事务T2
获取A的X锁
读取A的值 获取A的X锁

二、脏读
写数据的时候用X锁,但是读的时候不用加锁。
比如事务
1、T1获取银行账户A的X锁,读取值100
2、修改A的值为120,在此期间T2读A的值为120。
3、rollback A恢复为100 并释放A的X锁
4、T2读到的120就是脏数据。

三、不可重复读

四、幻读

猜你喜欢

转载自blog.csdn.net/qq_31617121/article/details/80188155
今日推荐