【Java面試】請說一下Mysql索引的優點和缺點?

跟著Mic學架構 發表於 2022-06-06
Java 面試 MySQL

今天分享的這道面試題,讓一個工作4年的小夥子去大眾點評拿了60W年薪。

這道面試題是: ”請你說一下Mysql索引的優點和缺點“

關於這道題,看看普通人和高手的回答

普通人:

嗯。。。。。。。。。

高手:

索引,是一種能夠幫助Mysql高效從磁碟上檢索資料的一種資料結構。

在Mysql中的InnoDB引擎中,採用了B+樹的結構來實現索引和資料的儲存

image-20220424095352924

在我看來,Mysql裡面的索引的優點有很多

  1. 通過B+樹的結構來儲存資料,可以大大減少資料檢索時的磁碟IO次數,從而提升資料查詢的效能
  2. B+樹索引在進行範圍查詢的時候,只需要找到起始節點,然後基於葉子節點的連結串列結構往下讀取即可,查詢效率較高。
  3. 通過唯一索引約束,可以保證資料表中每一行資料的唯一性

當然,索引的不合理使用,也會有帶來很多的缺點。

  1. 資料的增加、修改、刪除,需要涉及到索引的維護,當資料量較大的情況下,索引的維護會帶來較大的效能開銷。
  2. 一個表中允許存在一個聚簇索引和多個非聚簇索引,但是索引數不能建立太多,否則造成的索引維護成本過高。
  3. 建立索引的時候,需要考慮到索引欄位值的分散性,如果欄位的重複資料過多,建立索引反而會帶來效能降低。

在我看來,任何技術方案都會有兩面性,大部分情況下,技術方案的選擇更多的是看中它的優勢 和當前問題的匹配度。

以上就是我對這個問題的理解。

總結

行業競爭加劇,再加上現在大環境不好,各個一二線大廠都在裁員。

帶來的問題就是,人才篩選難度增加,找工作越來越難。

這道題目考察的是求職者對於Mysql的理解程度,不算難,但能卡主很多人。

喜歡的朋友記得點贊和收藏。

有任何工作和學習上的問題,可以隨時私信我。

file

版權宣告:本部落格所有文章除特別宣告外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Mic帶你學架構
如果本篇文章對您有幫助,還請幫忙點個關注和贊,您的堅持是我不斷創作的動力。歡迎關注「跟著Mic學架構」公眾號公眾號獲取更多技術乾貨!

【Java面試】請說一下Mysql索引的優點和缺點?