面试经常被问到的Mysql知识
1.聚簇索引和非聚簇索引的区别是什么?
聚簇索引也称为主键索引,在innodb引擎中索引的存储结构都是以B+ tree来存储,这种数据结构的特点是非叶子节点只存储索引值,不会存放行记录(也就是具体的数据),而叶子节点同时存放主键索引和行记录,这样的索引结构被称为聚簇索引;非聚簇索引只存放索引值,包括主键索引和其他索引。
2.什么是回表查询?
查询数据时根据普通索引值查询到对应的主键索引,随后根据主键索引再去查询对应的行记录,这就是所谓的回表查询,也就是说查询数据要走2次索引。
2.1 如何减少回表查询?
以主键为基准建立复合索引,减少回表查询的概率。
- mysql有哪几种锁?
表锁、行锁、全局锁,注意行锁锁住的不是一整行数据,而是索引。
4.mysql如何优化查询?
可以根据explain执行计划的结果去做针对性的优化。根据type和key的结果,最大程度的使用索引查询。
5.mysql有哪些常用的引擎?
MYISAM INNODB MEMORY ARCHIVE
6.索引有哪些数据结构?
有Hash索引,B tree索引和全文索引。
7.为什么不选择用Hash索引去替代B+ tree?
Hash索引只支持精确查找,不支持范围查找,因此不太适合业务需要。
8.INNODB和MYISAM的区别?
innodb支持外键和事务,myisam不支持。
9.哪种情况下更适合用MYISAM引擎去替代INNODB?
搭建mysql主从架构时,主机负责写请求,从机只负责读,这时可以把从机设置成MYISAM。
10.线上数据由于主从架构带来的延迟导致从机和主机的数据不一致,你们是如何解决的?

浙公网安备 33010602011771号