MySQL常见面试题

1.undo log,redo log,bin log是什么?Checkpoint是什么?一条MySQL更新语句的执行过程是什么样的?

  https://www.cnblogs.com/wq-blogs/p/11867199.html

  https://blog.csdn.net/u010002184/article/details/88526708

  checkpoint机制:https://www.cnblogs.com/cuisi/p/6590281.html

2.脏页是什么?

  https://blog.csdn.net/weixin_34198881/article/details/93577479

5.MySQL中的事务是什么?

6.MySQL的隔离级别是怎么样的?

7.MVCC的实现原理是怎么样的?

8.MySQL是怎么解决幻读的问题的?

9.MySQL中有哪些锁?

10.B树是什么?

11.B树与B+树的区别是什么?

12.索引是什么?

13.字符串索引和数字类型索引的区别?

  • 数字类型索引速度快,字符串涉及字符集编码过程,消耗CPU资源。
  • 当MySQL中字段为int类型时,搜索条件where num=‘111‘ 与where num=111都可以使用该字段的索引。当MySQL中字段为varchar类型时,搜索条件where num=‘111‘ 可以使用索引,where num=111 不可以使用索引。
  • 字符串索引优化:例如存储网站url,可以新增一个索引列,列值是对url进行CRC32("url")编码【不适合使用SHA1()、MD5(),因为编码后是非常长的字符串】。CRC32容易导致重复,可以使用自定义编码算法或者取MD5部分字符。

14.union和union all的区别是什么?

  • Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;(去重且排序)
  • Union All:对两个结果集进行并集操作,包括重复行,不进行排序;(不去重不排序--快)

15.Join的工作流程是怎么样的,怎么进行优化?

  https://blog.csdn.net/huxiaodong1994/article/details/91668304

17.联合索引是什么?

  https://blog.csdn.net/Abysscarry/article/details/80792876

18.回表是什么?覆盖索引是什么?

  https://www.jb51.net/article/180267.htm

19.哪些情况不要建索引?主键,唯一性索引,普通索引的区别是什么?

  https://www.cnblogs.com/l199616j/p/11232392.html

21.InnoDB和MyISAM的区别是什么?

22.什么是分库分表?

23.怎么实现跨库分页查询?

  • 二次查询法

  https://www.cnblogs.com/zhumengke/articles/12173314.html

  https://segmentfault.com/a/1190000013225860?utm_source=channel-hottest

24.MySQL主从复制的工作流程是什么样的?

25.char类型与varchar类型的区别?

  • char是固定长度存储字符,浪费空间但速度快。varchar是变长存储字符,节省空间但需要计算长度因此速度慢。
  • char适合存储很短的信息、固定长度信息(uuid)、频繁改变的列(varchar需要频繁计算长度)。
  • char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将被去掉-缺点)在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节)。

26.查询数量SELECT Count(*)怎么优化?

  https://blog.csdn.net/hit1110310422/article/details/97943091

27.如何优化MySQL慢查询?

  https://www.cnblogs.com/xk920/p/11132038.html

29.MySQL语句执行顺序?

 1 from
 2 on
 3 join
 4 where
 5 group by(开始使用select中的别名,后面的语句中都可以使用)
 6 avg,sum....
 7 having
 8 select
 9 distinct
10 order by

30.哪些时候索引无效?

  https://www.jianshu.com/p/3f310ff60f11

 31. Select执行过程

https://www.jianshu.com/p/d7ed81be71c7

 32. where having

  • where子句作用于基表或视图,从中选择满足条件的元组。
  • having短语作用于组,从中选择满足条件的组。 
  • having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)。 
  • where肯定在group by 之前,即也在having之前。 
    • where后的条件表达式里不允许使用聚合函数,而having可以

https://juejin.im/post/5f0d4fadf265da22f3250eaa

https://zhuanlan.zhihu.com/p/150058915

posted @ 2020-07-28 17:40  Qmillet  阅读(380)  评论(0编辑  收藏  举报