该篇文章罗列了一些面试里面会问到的一些高频mysql问题。
目录
索引:
1 讲索引的时候经常提到I/O密集型的查询会特殊一些,不明白I/O 密集型的聚体影响。
2 为什么要最左匹配原则?【索引的使用注意】
3 索引是如何工作得?
4 索引有哪些?各自特点啥?
5 索引的原理
6 索引的数据结构
7 如果一个user表 创了两个索引分别在sex 和 city字段上,select *from user where sex=’ xxx ‘ and city = ‘ xxx ‘ 问这个查询语句用了几个索引?
8 如果给字段A B C 建立索引,查询用到条件A 会怎样使用索引? 使用B呢? 使用A C呢?
9 索引命中情况 (最左匹配)
10 聚集型索引和非聚集型索引的区别
11 mysql联合索引命中
12 mysql like是否命中索引
存储引擎:
1 存储引擎有哪些及其区别?特点?存储引擎具体干什么的?
explain:
1 explain 理解,字段的意思
2 explain需要关注那几个字段
3 mysql执行计划 explain
mysql 优化:
1 mysql平时怎么优化
2 慢查询是什么?要怎么做?
隔离级别/锁:
1 mysql隔离级别相关(这个也经常问),设置成哪个级别解决了什么问题,mysql的默认隔离级别可重复解决了什么问题,能解决幻读吗?怎么去验证?
2 for update是什么锁 行锁
3 有哪几种锁?
4 mysql行锁、表锁 怎样使用行锁?当时还说了页锁
5 怎么加读锁
6 基于mysql,怎么存储一个文章的浏览量、评论量
7 mysql默认隔离级别
分库分表:
1 分库分表中间件
2 以什么纬度分表
3 有没有多纬度分表的场景
b +:
1 B+树为什么遍历快
2 B+树和B树的区别
3 mysql B+ 树的结构细节、优点等
4 mysql B+ 树 比 普通二叉树好在哪里
5 B+ 树好在哪里?
6 一来B+树矮胖,遍历层数低,带来什么好处?可参考 https://blog.csdn.net/yangguosb/article/details/81903583在B+树中, 由于底层的各个叶子节点都通过指针组织成一个双向链表。 只需要从根节点到叶子节点定位到第一个满足条件的Key, 然后不断在叶子节点迭代next指针即可实现遍历,此时相当于顺序IO
杂/具体案例:
1 查询优化挑一两个例子【列表入手,查询模式是怎样得?limit 性能不好怎么办{换成id的形式}?一般都有时间排序也影响性能,一般一个列表都会有关联查询,要怎么写?{eg:一般建议将子查询换成关联查询,为什么要这么换?mysql 查询机制是什么?}】
2 为什么要关系型数据库?
3 数据是存在哪里得?访问过程是怎样得?
4 用户权限分配?
5 Mybatis/hibernate 区别,各自特点 重点关注 mybatis ,缓存,spring结合 ,
6 mybatis插入一行数据,怎么能得到这次插入数据的自增主键
7 mysql分页 limit start size
但是这个是有问题的,如果数据量大,需要取出前start的数据,比如start=10000,需要把前10000条数据也取出来
因此在项目中用mybatis插件:PageHelper
8 一个sql语句,where 后面有好几个查询条件,用执行计划得到的count 扫描行数是什么
我回答是最优计划扫描B+树的行数 ,答的不好
rows: MySQL估算的为了找到所需行而要检索的行数,作为优化器选择key的参考
9 公司怎么看mysql、redis相关的指标
10 mybatis缓存
11 mysql执行计划
12 mysq主从同步原理
转载请注明:汪明鑫的个人博客 » mysql面试题集整理
说点什么
3 评论 在 "mysql面试题集整理"
可以加下大标题、空格、缩进哈
另外期待,可以在问题的最下方 附上自己对问题的解答和理解
收到,问题答案得慢慢整理了,别急
好的=-=