目录
如何解决这些高频面试题?
大致回答思路如下:
谈谈如何理解索引?
- 索引是干什么的(解决了什么问题)
- 索引付出的代价
- 索引背后的数据结构
谈谈如何理解事务?
- 事务是干什么的(从原子性切入)
- 事务还有其他什么特点
- 重点讲述隔离性,在并发事务下会有哪些问题,以及如何解决问题
- MySQL的隔离级别有哪些,和上面的问题如何应对
有想法了吗?
索引
基本认识
1.索引的效果:本质上就是缩小扫描范围,避免全表扫描,可以加快查找效率;
2.索引的代价:索引实际上也是一张表,保存主键和索引字段,指向实体表的记录,因此不仅需要占用一部分空间,还在每次对表的索引字段进行增删的同时,还需要更新一下索引文件,牺牲了一定的开销.
3.背后的数据结构:B+树(N叉搜索树)
在什么条件下,我们会考虑给字段添加索引呢?
条件1:数据量庞大
条件2:该字段经常出现在where的后面,以条件的形式存在。即这个字段总是被扫描。
条件3:该字段很少的DML操作。