天天看點

校招被問過的31道MySQL面試題(附答案)

大家好,我是帥地。

無論是秋招還是社招,在面試中 MySQL 被問到頻率基本是 100%,被問到最多的當屬索引和一些性能優化,例如慢查詢的排查啊, sql 執行的很慢的原因啊,等等。

關于 mysql,我之前也寫過自己的學習路線:為拿下校招,談一談我的mysql學習之路

驗證自己學的如何最好的方法就是去面試或者看一看一些面試題,自己是否能夠回答出來,因為有時候你雖然懂,但是你卻不知道該如何回答,這會在面試中很吃虧。

是以呢,帥地整理了以下幾十道 MySQL 的常考面試題,你先看看自己能不能回答,具體答案看文末。

1. 請說下你對 MySQL 架構的了解?

2. 一條 SQL 語句在資料庫架構中的執行流程?

3. 資料庫的三範式是什麼?

4. char 和 varchar 的差別?

5. varchar(10) 和 varchar(20) 的差別?

6. 談談你對索引的了解?

7. 索引的底層使用的是什麼資料結構?

8. 談談你對 B+ 樹的了解?

9. 為什麼 InnoDB 存儲引擎選用 B+ 樹而不是 B 樹呢?

10. 談談你對聚簇索引的了解?

11. 談談你對哈希索引的了解?

12. 談談你對覆寫索引的認識?

13. 索引的分類?

14. 談談你對最左字首原則的了解?

15. 怎麼知道建立的索引有沒有被使用到?或者說怎麼才可以知道這條語句運作很慢的原因?

16. 什麼情況下索引會失效?即查詢不走索引?

17. 查詢性能的優化方法?

18. InnoDB 和 MyISAM 的比較?

19. 談談你對水準切分和垂直切分的了解?

20. 主從複制中涉及到哪三個線程?

21. 主從同步的延遲原因及解決辦法?

22. 談談你對資料庫讀寫分離的了解?

23. 請你描述下事務的特性?

24. 談談你對事務隔離級别的了解?

25. 解釋下什麼叫髒讀、不可重複讀和幻讀?

26. MySQL 預設的隔離級别是什麼?

27. 談談你對MVCC 的了解?

28. 說一下 MySQL 的行鎖和表鎖?

29. InnoDB 存儲引擎的鎖的算法有哪些?

30. MySQL 問題排查都有哪些手段?

31. MySQL 資料庫 CPU 飙升到 500% 的話他怎麼處理?

由于公衆号不支援非公衆号内的域名跳轉,答案可以在帥的地網站看

連結:https://www.iamshuaidi.com/1402.html

也可以點選文末左下角的閱讀原文,不過建議PC端打開,PC端閱讀體驗好一些。