吊打面試官!Mysql數據庫83道連環炮,你能答對多少?

MySQL數據庫83題

1、數據庫存儲引擎
2、InoDB (B+樹)
2、TokuDB ( Fractal Tree-節點帶數據)
3、MyIASM
4、Memory
5、數據庫引擎有哪些
6、InoDB與MyISM的區別
7、索引
8、常見索引原則有
9、數據庫的三範式是什麼
10、第一範式(1st NF -列都是不可再分)
11、第二範式(2nd NF-每個表只描述一件事情)
12、第三範式(3rd NF -不存在對非主鍵列的傳遞依賴)
13、數據庫是事務
14、SQL優化
15、簡單說一說drop、 delete與truncate的區別
16、什麼是視圖
17、什麼是內聯接、左外聯接、右外聯接?
18、併發事務帶來哪些問題?
19、事務隔離級別有哪些?MySQL的默認隔離級別是?
20、大表如何優化?
21、水平分區
22、分庫分表之後,id主鍵如何處理
23、存儲過程(特定功能的 SQL 語句集)
24、存儲過程優化思路
25、觸發器(一段能自動執行的程序)
26、數據庫併發策略
27、MySQL中有哪幾種鎖?
28、MySQL中有哪些不同的表格?
29、簡述在 MySQL 數據庫中 MyISAM 和 InnoDB 的區別
30、MySQL 中 InnoDB 支持的四種事務隔離級別名稱,以及逐級之間的區別?
31、CHAR和VARCHAR 的區別?
32、主鍵和候選鍵有什麼區別?
33、myisamchk 是用來做什麼的?
34、MyISAM Static 和 MyISAM Dynamic 有什麼區別?
35、如果一個表有一列定義爲 TIMESTAMP,將發生什麼?
36、你怎麼看到爲表格定義的所有索引?
37、LIKE聲明中的%和是什麼意思?
38、列對比運算符是什麼?
39、BLOB和TEXT 有什麼區別?
40、MySQL_fetch_array 和 MySQL_fetch_object 的區別是什麼?
41、MyISAM 表格將在哪裏存儲,並且還提供其存儲格式?
42、MySQL如何優化DISTINCT?
43、如何顯示前50行?
44、可以使用多少列創建索引?
45、NOW()和 CURRENT_DATE()有什麼區別?
46、什麼是非標準字符串類型?
47、什麼是通用SQL函數?
48、MySQL支持事務嗎?
49、MySQL裏記錄貨幣用什麼字段類型好
50、MySQL有關權限的表都有哪幾個?
51、列的字符串類型可以是什麼?
52、MySQL數據庫作發佈系統的存儲,一天五萬條以上的增量,預計運維三年,怎麼優化?
53、鎖的優化策略
54、索引的底層實現原理和優化
55、什麼情況下設置了索引|但無法使用
56、實踐中如何優化MySQL
57、優化數據庫的方法
58、簡單描述MySQL 中,索引,主鍵,唯一索引,聯合索引的區別,對數據庫的性能有什麼影響(從讀寫兩方面)
59、數據庫中的事務是什麼?
60、SQL注入漏洞產生的原因?如何防止?
61、爲表中得字段選擇合適得數據類型
62、存儲時期
63、對於關係型數據庫而言,索引是相當重要的概念,請回答有關索引的幾個問題
64、解釋MySQL外連接、內連接與自連接的區別
65、Myql 中的事務回滾機制概述
66、SQL語言包括哪幾部分?每部分都有哪些操作關鍵
67、完整性約束包括哪些?
68、什麼是鎖?
69、什麼叫視圖?遊標是什麼?
70、什麼是存儲過程?用什麼來調用?
71、如何通俗地理解三個範式?
72、什麼是基本表?什麼是視圖?
73、試述視圖的優點?
74、NULL 是什麼意思
75、主鍵、外鍵和索引的區別?
76、你可以用什麼來確保表格裏的字段只接受特定範圍裏的值?
77、說說對SQL語句優化有哪些方法? (選擇幾條)
78、什麼是樂觀鎖
79、什麼是悲觀鎖
80、什麼是時間戳
81、什麼是行級鎖
82、什麼是表級鎖
83、什麼是頁級鎖

MySQL面試題

1、數據庫存儲引擎

數據庫存儲引擎是數據庫底層軟件組織,數據庫管理系統(DBMS)使用數據引擎進行創建、查詢、更新和刪除數據。不同的存儲引擎提供不同的存儲機制、索引技巧、鎖定水平等功能,使用不同的存儲引擎,還可以獲得特定的功能。現在許多不同的數據庫管理系統都支持多種不同的數據引擎。存儲引擎主要有: 1. MyIsam , 2. InnoDB, 3. Memory, 4. Archive, 5. Federated 。

2、數據庫引擎有哪些

mysql常用引擎包括:MYISAM、Innodb、Memory、MERGE

  1. MYISAM:全表鎖,擁有較高的執行速度,不支持事務,不支持外鍵,併發性能差,佔用空間相對較小,對事務完整性沒有要求,以select、insert爲主的應用基本上可以使用這引擎

  2. Innodb:行級鎖,提供了具有提交、回滾和崩潰回覆能力的事務安全,支持自動增長列,支持外鍵約束,併發能力強,佔用空間是MYISAM的2.5倍,處理效率相對會差一些

  3. Memory:全表鎖,存儲在內容中,速度快,但會佔用和數據量成正比的內存空間且數據在mysql重啓時會丟失,默認使用HASH索引,檢索效率非常高,但不適用於精確查找,主要用於那些內容變化不頻繁的代碼表

  4. MERGE:是一組MYISAM表的組合

3、InnoDB與MyISAM的區別

  1. InnoDB支持事務, MyISAM不支持,對於InnoDB每一條SQL語言都默認封裝成事務 ,自動提交,這樣會影響速度,所以最好把多條SQL語言放在begin和commit之間,組成一個務;

  2. InnoDB支持外鍵,而MyISAM不支持。對一個包含外鍵的InnoDB錶轉爲MYISAM會失敗;

  3. InnoDB是聚集索引,數據文件是和索引綁在一起的,必須要有主鍵,通過主鍵索引效率很高。但是輔助索引需要兩次查詢,先查詢到主鍵,然後再通過主鍵查詢到數據。因此,主鍵不應該過大,因爲主鍵太大,其他索引也都會很大。而MylSAM是非聚集索引,數據文件是分離的,索引保存的是數據文件的指針。主鍵索弓|和輔助索引|是獨立的。

  4. InnoDB不保存表的具體行數,執行select count(*) from table時需要全表掃描。而MylSAM用一個變量保存了整個表的行數,執行上述語句時只需要讀出該變量即可,速度很快;

  5. Innodb不支持全文索引,而MyISAM支持全文索引,查詢效率上MyISAM要高

4、索引

索引( Index )是幫助MySQL高效獲取數據的數據結構。常見的查詢算法,順序查找,二分查找=叉排序樹查找哈希散列法分塊查找,平衡多路搜索樹B樹( B-tree) , 索引是對數據庫表中一個或多個列的值進行排序的結構,建立索引有助於快速獲取信息。

你也可以這樣理解:索引就是加快檢索表中數據的方法。數據庫的索引類似於書籍的索引。在書籍中,索引允許用戶不必翻閱完整個書就能迅速地找到所需要的信息。在數據庫中,索引也允許數據庫程序迅速地找到表中的數據,而不必掃描整個數據庫

mysql有4種不同的索引:

  • 主鍵索引( PRIMARY )
  • 唯一索引( UNIQUE )
  • 普通索引( INDEX )
  • 全文索引( FULLTEXT )

索引並非是越多越好,創建索引也需要耗費資源, -是增加了數據庫的存儲空間,二是在插入和刪除時要花費較多的時間維護索引

  • 索引加快數據庫的檢索速度
  • 索引降低了插入、刪除、修改等維護任務的速度
  • 唯一索引可以確保每一行數據的唯一 -性
  • 通過使用索引,可以在查詢的過程中使用優化隱藏器,提高系統的性能
  • 索引需要佔物理和數據空間

5、常見的索引原則有哪些

  1. 選擇唯一性索引 ,唯一性索引的值是唯一的 ,可以更快速的通過該索引來確定某條記錄。
  2. 爲經常需要排序、分組和聯合操作的字段建立索引。
  3. 爲常用作爲查詢條件的字段建立索引。
  4. 限制索引的數目:
    越多的索引,會使更新表變得很浪費時間。儘量使用數據量少的索引
  5. 如果索引的值很長,那麼查詢的速度會受到影響。儘量使用前綴來索引
  6. 如果索引字段的值很長,最好使用值的前綴來索引。
  7. 刪除不再使用或者很少使用的索引
  8. 最左前綴匹配原則,非常重要的原則。
  9. 儘量選擇區分度高的列作爲索引區分度的公式是表示字段不重複的比例
  10. 索引列不能參與計算,保持列"乾淨”:帶函數的查詢不參與索引。
  11. 儘量的擴展索引,不要新建索引

6、數據庫的三範式是什麼

第一範式:列不可再分
第二範式:行可以唯- -區分,主鍵約束
第三範式:表的非主屬性不能依賴與其他表的非主屬性外鍵約束
且三大範式是一級一級依賴的,第二範式建立在第一範式上,第三範式建立第一第二範式上。

以上的面試題都已整理成冊,可以關注我的公衆號《老男孩的架構路》領取一線大廠Java面試題總結+各知識點學習思維導圖+一份400頁pdf文檔的Java獨家面試手冊!

這些資料的內容都是面試時面試官必問的知識點,篇章包括了很多知識點,其中包括了有基礎知識、Java集合、JVM、多線程併發、spring原理、微服務、Netty 與RPC 、Kafka、日記、設計模式、Java算法、數據庫、Zookeeper、分佈式緩存、數據結構等等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章