Java大廠面試百日沖刺 - 日積月累,每日三題【Day28】—— 數(shù)據(jù)庫5

      網(wǎng)友投稿 688 2022-05-28

      大家好,我是陳哈哈,北漂五年。相信大家和我一樣,都有一個大廠夢,作為一名資深Java選手,深知面試重要性,接下來我準(zhǔn)備用100天時間,基于Java崗面試中的高頻面試題,以每日3題的形式,帶你過一遍熱門面試題及恰如其分的解答。

      一路走來,隨著問題加深,發(fā)現(xiàn)不會的也愈來愈多。但底氣著實(shí)足了不少,相信不少朋友和我一樣,日積月累才是最有效的學(xué)習(xí)方式!想起高三時一個同學(xué)的座右銘:只有沉下去,才能浮上來。共勉(juan)。

      煙花臺風(fēng)來之前的上海,江浙滬各地的老鐵們,保重!

      車票

      面試題1:說一下你對聚集索引與非聚集索引的理解,以及他們的區(qū)別?

      追問1:為什么聚集索引可以創(chuàng)建在任何一列上,如果此表沒有主鍵約束,即有可能存在重復(fù)行數(shù)據(jù)呢?

      追問2:聚集索引一定比非聚集索引性能優(yōu)么?

      面試題2:說一說你對 B樹 和 B+樹 的理解吧

      面試題3:說一下你對最左前綴原則的理解吧

      每日小結(jié)

      Java崗大廠面試百日沖刺 - 日積月累,每日三題【Day28】—— 數(shù)據(jù)庫5

      本欄目Java開發(fā)崗高頻面試題主要出自以下各技術(shù)棧:Java基礎(chǔ)知識、集合容器、并發(fā)編程、JVM、Spring全家桶、MyBatis等ORMapping框架、MySQL數(shù)據(jù)庫、Redis緩存、RabbitMQ消息隊(duì)列、Linux操作技巧等。

      面試題1:說一下你對聚集索引與非聚集索引的理解,以及他們的區(qū)別?

      首先解釋一下,什么是聚集索引和非聚集索引。這里我想起網(wǎng)上看到的一個典型的例子:

      說索引像一個漢語字典,聚集索引是根據(jù)拼音查詢,而非聚集索引是根據(jù)偏旁部首查詢,你想想哪個查的快?

      漢語字典的正文本身就是一個聚集索引。比如,我們要查“啊”字,拼音是“a”,按照拼音排序是以“a”開頭“z”結(jié)尾的,那么“啊”字就自然地排在字典的前部。如果翻完了所有以“a”開頭的內(nèi)容仍然找不到這個字,那么就說明字典中就沒有這個字。我們知道,其實(shí)字典的正文部分本身就是一個目錄,不需要再去查其他目錄來找到我們需要找的內(nèi)容。我們把這種正文內(nèi)容本身就按照一定規(guī)則排列(有序)的目錄稱為“聚集索引”。

      問題來了,遇到不認(rèn)識的字,不知道它的發(fā)音,怎么辦?

      這時候,就得用“偏旁部首”查了吧,然后根據(jù)這個偏旁后的頁碼來找字。這種結(jié)合“部首目錄”和“檢字表”查到的字的排序并不是真正的正文的排序方法,比如查“張”字,我們可以看到在查部首之后的檢字表中“張”的頁碼是672頁,檢字表中“張”的上面是“馳”字,但頁碼卻是63頁,“張”的下面是“弩”字,頁面是390頁。很顯然,這些字并不是真正的分別位于“張”字的上下方,現(xiàn)在看到的連續(xù)的“馳、張、弩”三字實(shí)際上就是他們在非聚集索引中的排序,是字典正文中的字在非聚集索引中的映射。

      我們可以通過這種方式來找到我們所需要的字,但它需要兩個過程,先找到目錄中的結(jié)果,然后再翻到相應(yīng)頁碼。我們把這種目錄純粹是目錄,正文純粹是正文的排序方式(無序)稱為“非聚集索引”。

      1、聚集索引

      聚集索引是我們常用的一種索引,該索引中鍵值的邏輯順序決定了表中相應(yīng)行的物理順序,我們?nèi)~子結(jié)點(diǎn)直接對應(yīng)的實(shí)際數(shù)據(jù),當(dāng)索引值唯一(unique)時,使用聚集索引查找特定的行效率很高。例如,使用唯一店員 ID 列 emp_id 查找特定雇員的最快速的方法,是在 emp_id 列上創(chuàng)建聚集索引或 PRIMARY KEY 約束。可見,自增主鍵就是一個標(biāo)準(zhǔn)的聚集索引。

      當(dāng)某列滿足兩個條件時,我們可以創(chuàng)建聚集索引:

      數(shù)據(jù)存儲有序(如自增)

      key值應(yīng)當(dāng)唯一

      聚簇索引像字典,字典按字母順序排列數(shù)據(jù),有序。在聚集索引中,索引包含指向數(shù)據(jù)存儲的塊而不是數(shù)據(jù)存儲地址的指針,和非聚集索引(Normal)相反。

      2、非聚集索引

      非聚集索引就是索引類型為Normal的普通索引啦,我們在《聊聊MySQL索引“B+Tree”的前世今生》這篇文章中提到,B+Tree(這里是索引類型是Normal)所有關(guān)鍵字存儲在葉子節(jié)點(diǎn),但不存儲真正的data,葉子結(jié)點(diǎn)存的是一個指向磁盤data的指針,需要到磁盤數(shù)據(jù)頁中取。

      非聚集索引的數(shù)據(jù)存儲在一個位置,索引存儲在另一位置。由于數(shù)據(jù)和非聚集索引是分開存儲的,因此在一個表中可以有多個非聚集索引。

      聚集索引 和 非聚集索引的區(qū)別:

      單表中只能有一個聚集索引,而非聚集索引單表可以存在多個。

      聚集索引,索引中鍵值的邏輯順序決定了表中相應(yīng)行的物理順序;非聚集索引,索引中索引的邏輯順序與磁盤上行的物理存儲順序不同。

      索引是通過二叉樹的數(shù)據(jù)結(jié)構(gòu)來描述的,我們可以這么理解聚簇索引:索引的葉節(jié)點(diǎn)就是數(shù)據(jù)節(jié)點(diǎn)

      Java 數(shù)據(jù)庫

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:免費(fèi)分享一套詳細(xì)的Java面試視頻
      下一篇:Elastic數(shù)據(jù)遷移方法及注意事項(xiàng)
      相關(guān)文章
      久久综合亚洲鲁鲁五月天| 亚洲网红精品大秀在线观看| 国产精品亚洲色婷婷99久久精品| 亚洲综合一区二区精品久久| 亚洲国产成人久久精品影视| 亚洲色婷婷六月亚洲婷婷6月| 久久精品亚洲乱码伦伦中文| 亚洲第一黄色网址| 日韩色日韩视频亚洲网站 | 亚洲国产欧洲综合997久久| 亚洲日韩国产二区无码| 亚洲精品无码中文久久字幕| 亚洲色大成网站www永久网站| 亚洲中文字幕无码一去台湾| 亚洲中文字幕久久久一区| 亚洲色欲色欱wwW在线| 亚洲AV日韩AV无码污污网站| 国产亚洲午夜精品| 亚洲一级Av无码毛片久久精品| 国产亚洲精品激情都市| 亚洲乱码国产一区三区| 亚洲gv猛男gv无码男同短文| 一区二区三区亚洲| 亚洲伦理一二三四| 亚洲欧美黑人猛交群| 国产精品久久亚洲一区二区| 亚洲精品tv久久久久| 亚洲人成人无码网www电影首页| 精品亚洲综合久久中文字幕| 亚洲人成电影在在线观看网色| 亚洲日本乱码一区二区在线二产线| 亚洲一卡2卡3卡4卡国产网站 | 国产精品亚洲精品观看不卡| 亚洲精品无播放器在线播放 | 亚洲成片观看四虎永久| 亚洲乱码国产一区三区| 亚洲高清不卡视频| 亚洲午夜理论片在线观看| 亚洲高清无码专区视频| 国产A在亚洲线播放| 亚洲美女色在线欧洲美女|