索引
b+树索引可以减少磁盘寻道次数,把多个值作为一个数组通过连续区间存放,一次寻道取多个数据,同时降低树的高度。
引擎
默认存储引擎innoDB,5.7版本所有存储引擎中只有innoDB支持事务。
存储引擎差别
myisam只有表级锁,不支持事务,不支持崩溃恢复,
innoDB支持行级锁,支持事务,通过redo log支持崩溃恢复,保证持久性,undo log回滚,保证原子性,通过锁、MVCC保证事务隔离性。
innoDB锁类型
record lock 记录锁,锁一行。
gap lock 间隙锁,锁一个间隙。
next-key lock = record lock + gap lock,临键锁,锁一个范围,包含记录
并发事务带来哪些问题
- 脏读 一个事务修改了数据还没提交,另一个事务就读到了
- 丢失修改 一个事务修改了数据,另一个事务也修改了数据,第一个事务的修改丢失
- 不可重复读 一个事务内多次读一个数据结果不一样
- 幻读 一个事务内多次读同一个条件的筛选结果,数量不一样
隔离级别
- read uncommitted 读未提交 允许读未提交的数据,脏读、幻读、不可重复读
- read committed 读已提交 阻止脏读,不能阻止幻读和不可重复读
- repeatable read 可重复读 可以阻止脏读和不可重复读,不能阻止幻读
- serializable 串行 可阻止脏读,幻读,不可重复读
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。