MySQL面試問題

2021-10-13 07:27:17 字數 1469 閱讀 4213

相關資料:

mysql資料庫面試題(2020最新版):

高效能 mysql學習總結(超讚!!!):

【mysql】20個經典面試題:

mysql伺服器通過許可權表來控制使用者對資料庫的訪問,許可權表存放在mysql資料庫裡,由mysql_install_db指令碼初始化。這些許可權表分別user,db,table_priv,columns_priv和host。下面分別介紹一下這些表的結構和內容:

聚集索引與非聚集索引的區別是:葉節點是否存放一整行記錄

下圖形象說明了聚簇索引表(innodb)和非聚簇索引(myisam)的區別:

b+樹索引可以分為聚簇索引(也稱聚集索引,clustered index)和輔助索引(有時也稱非聚簇索引或二級索引,secondary index,non-clustered index)。這兩種索引內部都是b+樹,聚集索引的葉子節點存放著一整行的資料。

聚簇索引就是按照每張表的主鍵構造一顆b+樹,同時葉子節點中存放的就是整張表的行記錄資料,也將聚集索引的葉子節點稱為資料頁。這個特性決定了索引組織表中資料也是索引的一部分,每張表只能擁有乙個聚簇索引。

innodb通過主鍵聚集資料,如果沒有定義主鍵,innodb會選擇非空的唯一索引代替。如果沒有這樣的索引,innodb自動生成乙個隱含字段作為主鍵,這個字段長度為6個位元組,型別為長整形。

優點:資料訪問更快,因為聚簇索引將索引和資料儲存在同乙個b+樹中,因此從聚簇索引中獲取資料比非聚簇索引更快

聚簇索引對於主鍵的排序查詢和範圍查詢速度非常快

缺點:插入速度嚴重依賴於插入順序,按照主鍵的順序插入是最快的方式,否則將會出現頁**,嚴重影響效能。因此,對於innodb表,我們一般都會定義乙個自增的id列為主鍵更新主鍵的代價很高,因為將會導致被更新的行移動。因此,對於innodb表,我們一般定義主鍵為不可更新。

二級索引訪問需要兩次索引查詢,第一次找到主鍵值,第二次根據主鍵值找到行資料。

聚簇索引之上建立的索引稱之為輔助索引

輔助索引訪問資料總是需要二次查詢。輔助索引葉子節點儲存的不再是行的物理位置,而是主鍵值。通過輔助索引首先找到的是主鍵值,再通過主鍵值找到資料行的資料頁,再通過資料頁中的page directory找到資料行。

innodb輔助索引的葉子節點並不包含行記錄的全部資料,葉子節點除了包含鍵值外,還包含了相應行資料的聚簇索引鍵。

輔助索引的存在不影響資料在聚簇索引中的組織,所以一張表可以有多個輔助索引。在innodb中有時也稱輔助索引為二級索引。

1)主鍵索引:

2)innodb的輔助索引:

1)主鍵索引:

2)輔助索引(secondary key)

覆蓋索引(covering index)

mysql面試問題

1,mysql的三大引擎是啥?mysql常用的引擎有innodb,myisam,memory,預設是innodb innodb 磁碟表,支援事務,支援行級鎖,b tree索引 ps 優點 具有良好的acid特性。適用於高併發,更新操作比較多的表。需要使用事務的表。對自動災難恢復有要求的表。缺點 讀寫...

It面試問題

一般第一輪技術面都是來考察你最基本的技術功底。招聘季節,隨處可見抱著厚厚的 程式設計師面試寶典 啃的學生。偶爾也能看見 程式設計之美 劍指offer 的神書。這些經驗書確實有用。但是要想全面的掌握筆試面試的基礎考點,還是需要完整的複習。其實,筆試面試對計算機基礎的考察是萬變不離其宗的。其考點無非分為...

面試 Hbase面試問題

1.hbase怎麼預分割槽?2.hbase怎麼給web前台提供介面來訪問?3.htable api有沒有執行緒安全問題,在程式中是單例還是多例?4.hbase有沒有併發問題?5.metaq訊息佇列,zookeeper集群,storm集群,就可以完成對 推薦系統功能嗎?還有沒有其他的中介軟體?6.st...