1.数据库的四个特性
一致性
隔离性
原子性
持久性
2.隔离性的四个隔离等级
未提交读
不可重复读
可重复读
可串行化
3.开发一致性问题
丢失修改:T1,T2同时对数据进行修改,T1先修改,T2后修改,T2的修改覆盖了T1的修改
脏读:T1修改数据,T2读取数据,T1撤销,这时候T1读取的数据为脏数据
不可重复读:T1读取数据,T2修改,T1再次读,读取的数据和上次读取的不一样
幻读:T1读取一个范围的数据,T2插入了一个,T1再次读取,结果不同
4.MVCC
思想:通过版本控制,增删改会更新版本快照,进行增删改操作在最新的版本快照中执行,而读操作会在旧的版本中操作,未提交读这个很容易实现,MVCC主要解决了不可重复读和脏读。可串行化单独用MVCC无法实现。
5.封锁
封锁粒度有行级锁和表级锁,应该尽量锁要争抢的数据,锁的数据越少越好,不然发生争抢的数据就比较多,浪费资源
封锁类型:读写锁和意向锁,读写锁也叫X锁Y锁。意向锁就是lx,ly锁。
当是X锁时不能读不能写,当说S锁时还能读
6.范式
第一范式:属性不可分
第二范式:非主属性完全依赖于键码
第三范式:取消传递依赖