一、MySQL的索引结构是什么样子的?
1、MySQL主键的索引结构是b+树的结构
2、b+树的索引节点不存放数据,叶子节点才会存放数据,所以这样可以腾出更多的空间让分支组织的更宽的树,
以此来提高数据的检索性能
3、叶子节点的结构采用的是双向链表,所有的数据都在叶子节点上面,可以提高范围查询的性能。
比如我要执行 selelct * from t1 where id < 15
那么他就会先找到对应的索引叶子节点位置,然后因为叶子节点是双向链表,那么就可以直接返回该节点前面的数据。
二、事务的隔离基本有哪些?可以解决什么问题?
事务的隔离级别有四个
读未提交、读已提交、可重复读、串行化
这四个级别的并发能力依次递减。
他们分别可以处理以下问题
名称 | 脏读可能性 | 不可重复读可能性 | 幻读可能性 | 加锁读 |
读未提交 | 是 | 是 | 是 | 否 |
读已提交 | 否 | 是 | 是 | 否 |
可重复读 | 否 | 否 | 是(Innodb不会) | 否 |
串行化 | 否 | 否 | 否 | 否 |