MySQL面试真题
一、B+Tree的性质、规约、优点
1、性质
- 非叶子节点不存储数据,只存储索引(冗余),可以放更多的数据
- 叶子节点包含所有索引字段
- 叶子节点用指针连接,提高区间访问性能
二、MySQL中锁有哪些
1、按锁粒度分
(1)行锁:锁某行数据,锁粒度小,并发度高
(2)表锁:锁整张表,锁粒度大,并发度低
(3)间隙锁:锁的是一个区间
2、按读写性质分
(1)共享锁:也就是读锁,一个事务给某行数据加了读锁,其他事务也可以读,但是不能写
(2)排他锁:也就是写锁,一个事务给某行数据加了写锁,其他事务不能读,也不能写
3、按好坏性分
(1)乐观锁:并不会真正去锁某行记录,而是通过一个版本号来实现的;上面所说的行锁、表锁等都是悲观锁
(2)悲观锁:上面所说的行锁、表锁等都是悲观锁
三、MySQL慢查询如何优化
1、检查是否走了引,如果没有则优化SQL,利用索引
2、检查所利用的索引,是否最优索引
3、检查所查字段是否都是必须的,是否查询了过多字段,查出了多余数据
4、检查表中数据是否过多,是否应该进行分分表了
5、检查数据库实例所在机器的性能配置,是否太低,是否可以适当增加资源