搜遍全網,整理的MySQL面試題,附答案。

胖胖胖胖虎阿發表於2021-10-20

我把所有Java相關的面試題和答案都整理成了PDF,並且帶書籤目錄,閱讀起來非常方便

面試題及答案PDF下載https://www.hicxy.com/?p=2645

面試題及答案PDF下載https://www.hicxy.com/?p=2645

面試題及答案PDF下載https://www.hicxy.com/?p=2645

1. 列值為NULL時,查詢是否會用到索引?

在MySQL裡NULL值的列也是走索引的。當然,如果計劃對列進行索引,就要儘量避免把它設定為可空,MySQL難以優化引用了可空列的查詢,它會使索引、索引統計和值更加複雜。

2. 說一說三個正規化

第一正規化(1NF): 資料庫表中的欄位都是單一屬性的,不可再分。這個單一屬性由基本型別構成,包括整型、實數、字元型、邏輯型、日期型等。
第二正規化(2NF): 資料庫表中不存在非關鍵欄位對任一候選關鍵欄位的部分函式依賴(部分函式依賴指的是存在組合關鍵字中的某些欄位決定非關鍵欄位的情況),也即所有非關鍵欄位都完全依賴於任意一組候選關鍵字。
第三正規化(3NF): 在第二正規化的基礎上,資料表中如果不存在非關鍵欄位對任一候選關鍵欄位的傳遞函式依賴則符合第三正規化。所謂傳遞函式依賴,指的是如 果存在"A → B → C"的決定關係,則C傳遞函式依賴於A。因此,滿足第三正規化的資料庫表應該不存在如下依賴關係: 關鍵欄位 → 非關鍵欄位 x → 非關鍵欄位y

3. innodb引擎的特性

  • 插入緩衝(insert buffer)
  • 二次寫(double write)
  • 自適應雜湊索引(ahi)
  • 預讀(read ahead)

4. 上面提到了B+樹在滿足聚簇索引和覆蓋索引的時候不需要回表查詢資料,什麼是聚簇索引?

在B+樹的索引中,葉子節點可能儲存了當前的key值,也可能儲存了當前的key值以及整行的資料,這就是聚簇索引和非聚簇索引. 在InnoDB中,只有主鍵索引是聚簇索引,如果沒有主鍵,則挑選一個唯一鍵建立聚簇索引.如果沒有唯一鍵,則隱式的生成一個鍵來建立聚簇索引.

當查詢使用聚簇索引時,在對應的葉子節點,可以獲取到整行資料,因此不用再次進行回表查詢.

5. 你們資料庫是否支援emoji表情,如果不支援,如何操作?

如果是utf8字符集的話,需要升級至utf8_mb4方可支援

後面的問題,大家可以先自己獨立思考一下。

另外我把所有Java相關的面試題和答案都整理出來了,給大家參考一下

面試題及答案PDF下載https://www.hicxy.com/?p=2645

面試題及答案PDF下載https://www.hicxy.com/?p=2645

面試題及答案PDF下載https://www.hicxy.com/?p=2645

6. 索引分類

7. 怎麼解決這些問題呢?MySQL的事務隔離級別瞭解嗎?

8. 一個6億的表a,一個3億的表b,通過外間tid關聯,你如何最快的查詢出滿足條件的第50000到第50200中的這200條資料記錄。

9. MyISAM索引實現?

10. 索引的使用場景

11. MyISAM儲存引擎應用場景有哪些?

12. 同時有多個事務在進行會怎麼樣呢?

13. 什麼是MySQL?

14. 索引是什麼?有什麼作用以及優缺點?

15. 對MySQL的鎖瞭解嗎?

16. 使用 MySQL 檢視有何優點?

17. myisamchk 是用來做什麼的?

18. 那麼在哪些情況下會發生針對該列建立了索引但是在查詢的時候並沒有使用呢?

19. 如果要儲存使用者的密碼雜湊,應該使用什麼欄位進行儲存?

20. MySQL複製基本原理流程

21. 關係型資料庫有什麼優勢?

22. Explain 效能分析

23. MySQL索引的注意事項

24. MySQL的複製原理以及流程

25. SQL 語句有哪些分類?

26. MySQL 中有哪幾種鎖?

27. 索引對效能的影響:

28. 內連線分為三類

29. 索引的型別

30. 全連線(FULL JOIN)

31. MySQL的binlog有有幾種錄入格式?分別有什麼區別?

32. 儲存時期

33. 以下三條sql 如何建索引,只建一條怎麼建?

34. 建立索引的語法

35. MySQL中varchar與char的區別以及varchar(50)中的50代表的涵義

36. 鎖機制與InnoDB鎖演算法

37. 併發事務帶來哪些問題?

38. 超大分頁怎麼處理?

39. 什麼是儲存過程?

40. InnoDB 引擎的四大特性是什麼?

41. 資料庫刪除操作中的 delete、drop、 truncate 區別在哪?

42. 觸發器的使用場景

43. 簡單描述MySQL中,索引,主鍵,唯一索引,聯合索引的區別,對資料庫的效能有什麼影響?

44. 使用索引查詢一定能提高查詢的效能嗎?為什麼

45. SQL語句優化的一些方法?

46. SELECT COUNT(*) 在哪個引擎執行更快?

47. varchar(10)和int(10)代表什麼含義?

48. CHAR 和 VARCHAR的區別?

49. 什麼是 SQL

50. 鎖的優化策略

51. MySQL事務處理

52. 外連線(LEFT JOIN/RIGHT JOIN)

53. 如何優化SQL

54. MySQL都有哪些鎖呢?像上面那樣子進行鎖定豈不是有點阻礙併發效率了?

55. SQL 注入漏洞產生的原因?如何防止?

56. 主鍵使用自增ID還是UUID?

57. 索引的區別

58. MySQL鎖機制

59. B-Tree 和 B+Tree

60. 做過哪些MySQL索引相關優化

61. 什麼是儲存過程?有哪些優缺點?

62. 什麼是 MySql 檢視?

63. 如果一個表有一列定義為TIMESTAMP,將發生什麼?

64. MySQL 裡記錄貨幣用什麼欄位型別好

65. 什麼是事務?

66. 關心過業務系統裡面的sql耗時嗎?統計過慢查詢嗎?對慢查詢都怎麼優化過?

67. 索引的優缺點

68. 儲存引擎常用命令

69. InnoDB 儲存引擎應用場景是什麼?

70. MySQL索引的建立原則

71. Innodb使用的是哪種隔離級別呢?

72. 非聚簇索引一定會回表查詢嗎?

73. 為什麼用 B+ 樹做索引而不用雜湊表做索引?

74. MySQL中varchar與char的區別以及varchar(50)中的50代表的涵義

75. MySQL 儲存引擎型別有哪些?

76. MySQL由哪些部分組成, 分別用來做什麼

77. MyISAM儲存引擎特性有哪些?

78. 簡單說一說drop、delete與truncate的區別

79. 唯一索引比普通索引快嗎, 為什麼

80. 什麼是關係型資料庫?

81. 欄位為什麼要求定義為not null?

82. 如何在MySQL種獲取當前日期?

83. ACID是什麼?可以詳細說一下嗎?

84. MyISAM索引與InnoDB索引的區別?

85. Hash索引和B+樹所有有什麼區別或者說優劣呢?

86. 以下語句是否會應用索引:SELECT FROM users WHERE YEAR(adddate) < 2007;

87. 請說明InnoDB和MyISAM的區別

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

89. Myql 中的事務回滾機制概述

90. 在建立索引的時候,都有哪些需要考慮的因素呢?

91. innodb的事務與日誌的實現方式

92. MySQL中的varchar和char有什麼區別.

93. 資料庫的樂觀鎖和悲觀鎖是什麼?

94. 橫向分表和縱向分表,可以分別舉一個適合他們的例子嗎?

95. 優化資料庫的方法

96. MySQL 資料庫作釋出系統的儲存,一天五萬條以上的增量, 預計運維三年,怎麼優化?

97. 簡單描述 MySQL 中,索引,主鍵,唯一索引,聯合索引的區別,對資料庫的效能有什麼影響(從讀寫兩方面)

98. 請說明varchar和text的區別

99. InnoDB和MyISAM有什麼區別?

100. MySQL 有哪些資料型別?

101. 什麼是檢視?以及檢視的使用場景有哪些?

102. 超鍵、候選鍵、主鍵、外來鍵分別是什麼?

103. int(10) 和 bigint(10) 能儲存的資料大小一樣嗎?

104. 解釋 MySQL 外連線、內連線與自連線的區別

105. MySQL的常用操作

106. MySQL索引的原理

107. FLOAT和DOUBLE的區別是什麼?

108. 索引是個什麼樣的資料結構呢?

109. 索引的基礎

110. MySQL如何保證複製過程中資料一致性及減少資料同步延時

111. 什麼情況下設定了索引但無法使用

112. 建立MySQL聯合索引應該注意什麼?

113. VARCHAR(50) 能存放幾個 UTF8 編碼的漢字?

114. 為什麼要儘量設定一個主鍵?

115. MySql 服務預設埠號是多少 ?

116. 聯合索引是什麼?為什麼需要注意聯合索引中的順序?

117. 怎麼看到為表格定義的所有索引?

118. MySQL支援哪些儲存引擎?

119. 儲存過程和函式好像差不多,你說說他們有什麼區別?

120. UNION與UNION ALL的區別?

121. 聯合查詢(UNION與UNION ALL)

122. MySQL資料庫cpu飆升到500%的話他怎麼處理?

123. drop、delete與truncate分別在什麼場景之下使用?

124. 什麼是觸發器,MySQL中都有哪些觸發器?

125. 六種關聯查詢

相關文章