黄视频网站在线免费观看-黄视频网站在线看-黄视频网站在线观看-黄视频网站免费看-黄视频网站免费观看-黄视频网站免费

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 作為一個(gè)K-V數(shù)據(jù)庫(kù),levelDB索引為什么要使用LSM樹實(shí)現(xiàn),而不采用哈希索引?

作為一個(gè)K-V數(shù)據(jù)庫(kù),levelDB索引為什么要使用LSM樹實(shí)現(xiàn),而不采用哈希索引?

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-10-12 21:16:22 1697116582

一、作為一個(gè)K-V數(shù)據(jù)庫(kù),levelDB索引要使用LSM樹實(shí)現(xiàn),而不采用哈希索引的原因

1、LSM樹有快速的寫入性能

LSM樹的寫入性能優(yōu)于哈希索引。哈希索引在插入數(shù)據(jù)時(shí)需要從鏈表中查找是否已經(jīng)存在相同的哈希值的鍵,而LSM樹的寫入則是以順序的方式追加數(shù)據(jù)到磁盤中,并非順序?qū)懭氪疟P,而是寫入到內(nèi)存緩存中。這種分層追加和緩存設(shè)計(jì)方式,使得LevelDB具有比哈希表更快的寫入速度。

2、LSM樹有優(yōu)異的單機(jī)讀取性能

LSM樹在內(nèi)存中維護(hù)一個(gè)鏈表來(lái)加速讀取操作。LevelDB使用一個(gè)類似于Write Ahead Log(WAL)的技術(shù),將每個(gè)寫入操作都記錄到磁盤上,并在內(nèi)存中建立一份索引。使用內(nèi)存索引可以快速地查找這些寫入記錄,而磁盤記錄則由后臺(tái)線程讀取。

3、LSM樹適合處理大量數(shù)據(jù)

LSM樹的分層設(shè)計(jì)也使得它能夠處理大量數(shù)據(jù)。LevelDB將磁盤上的數(shù)據(jù)分為多層,每層都存儲(chǔ)了一定范圍的鍵值對(duì)。較低層的數(shù)據(jù)范圍更廣,而較高層數(shù)據(jù)范圍較小。當(dāng)內(nèi)存中的鍵值對(duì)達(dá)到一定數(shù)量時(shí),LevelDB會(huì)將它們寫入到磁盤上的最低層。一段時(shí)間后,這些數(shù)據(jù)會(huì)被合并到更高層,形成新的磁盤文件。這個(gè)分層方式也使得在大多數(shù)情況下,讀取一個(gè)鍵的操作只需要讀取一個(gè)或少數(shù)幾個(gè)磁盤文件,而不是讀取整個(gè)數(shù)據(jù)庫(kù)。

4、LSM樹支持?jǐn)?shù)據(jù)范圍查詢

由于LSM樹采用了分層設(shè)計(jì),因此LevelDB支持對(duì)某一層或多層的萃取搜索,或者查詢某個(gè)數(shù)據(jù)范圍內(nèi)的所有鍵值對(duì),而哈希表只能支持對(duì)單個(gè)鍵值的搜索。

二、LSM樹介紹

1、簡(jiǎn)介

LSM樹(Log-Structured-Merge-Tree)的名字往往會(huì)給初識(shí)者一個(gè)錯(cuò)誤的印象,事實(shí)上,LSM樹并不像B+樹、紅黑樹一樣是一顆嚴(yán)格的樹狀數(shù)據(jù)結(jié)構(gòu),它其實(shí)是一種存儲(chǔ)結(jié)構(gòu),目前HBase,LevelDB,RocksDB這些NoSQL存儲(chǔ)都是采用的LSM樹。

LSM樹的核心特點(diǎn)是利用順序?qū)憗?lái)提高寫性能,但因?yàn)榉謱樱ù颂幏謱邮侵傅姆譃閮?nèi)存和文件兩部分)的設(shè)計(jì)會(huì)稍微降低讀性能,但是通過(guò)犧牲小部分讀性能換來(lái)高性能寫,使得LSM樹成為非常流行的存儲(chǔ)結(jié)構(gòu)。

2、誕生背景

傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)使用btree或一些變體作為存儲(chǔ)結(jié)構(gòu),能高效進(jìn)行查找。但保存在磁盤中時(shí)它也有一個(gè)明顯的缺陷,那就是邏輯上相離很近但物理卻可能相隔很遠(yuǎn),這就可能造成大量的磁盤隨機(jī)讀寫。隨機(jī)讀寫比順序讀寫慢很多,為了提升IO性能,我們需要一種能將隨機(jī)操作變?yōu)轫樞虿僮鞯臋C(jī)制,于是便有了LSM樹。LSM樹能讓我們進(jìn)行順序?qū)懘疟P,從而大幅提升寫操作,作為代價(jià)的是犧牲了一些讀性能。

3、核心思想

LSM樹三個(gè)重要組成部分,分別是MemTable,Immutable MemTable和SSTable(Sorted String Table)。MemTable是在內(nèi)存中的數(shù)據(jù)結(jié)構(gòu),用于保存最近更新的數(shù)據(jù),會(huì)按照Key有序地組織這些數(shù)據(jù),LSM樹對(duì)于具體如何組織有序地組織數(shù)據(jù)并沒(méi)有明確的數(shù)據(jù)結(jié)構(gòu)定義,例如Hbase使跳躍表來(lái)保證內(nèi)存中key的有序。因?yàn)閿?shù)據(jù)暫時(shí)保存在內(nèi)存中,內(nèi)存并不是可靠存儲(chǔ),如果斷電會(huì)丟失數(shù)據(jù),因此通常會(huì)通過(guò)WAL(Write-ahead logging,預(yù)寫式日志)的方式來(lái)保證數(shù)據(jù)的可靠性。

當(dāng) MemTable達(dá)到一定大小后,會(huì)轉(zhuǎn)化成Immutable MemTable。Immutable MemTable是將轉(zhuǎn)MemTable變?yōu)镾STable的一種中間狀態(tài)。寫操作由新的MemTable處理,在轉(zhuǎn)存過(guò)程中不阻塞數(shù)據(jù)更新操作。SSTable是有序鍵值對(duì)集合,是LSM樹組在磁盤中的數(shù)據(jù)結(jié)構(gòu)。為了加快SSTable的讀取,可以通過(guò)建立key的索引以及布隆過(guò)濾器來(lái)加快key的查找。

這里需要關(guān)注一個(gè)重點(diǎn),LSM樹(Log-Structured-Merge-Tree)正如它的名字一樣,LSM樹會(huì)將所有的數(shù)據(jù)插入、修改、刪除等操作記錄(注意是操作記錄)保存在內(nèi)存之中,當(dāng)此類操作達(dá)到一定的數(shù)據(jù)量后,再批量地順序?qū)懭氲酱疟P當(dāng)中。這與B+樹不同,B+樹數(shù)據(jù)的更新會(huì)直接在原數(shù)據(jù)所在處修改對(duì)應(yīng)的值,但是LSM數(shù)的數(shù)據(jù)更新是日志式的,當(dāng)一條數(shù)據(jù)更新是直接append一條更新記錄完成的。這樣設(shè)計(jì)的目的就是為了順序?qū)懀粩嗟貙mmutable MemTable flush到持久化存儲(chǔ)即可,而不用去修改之前的SSTable中的key,保證了順序?qū)憽?/p>

三、哈希索引

1、簡(jiǎn)介

哈希索引(hash index)基于哈希表實(shí)現(xiàn),只有精確匹配索引所有列的查詢才有效,對(duì)于每一行數(shù)據(jù),存儲(chǔ)引擎都會(huì)對(duì)所有的索引列計(jì)算一個(gè)哈希碼,哈希碼是一個(gè)較小的值,并且不同鍵值的行計(jì)算出來(lái)的哈希碼也不一樣。哈希碼索引將所有的哈希碼存儲(chǔ)在索引中,同時(shí)在哈希表中保存指向每個(gè)數(shù)據(jù)行的指針。
通過(guò)Hash算法(常見的Hash算法有直接定址法、平方取中法、折疊法、除數(shù)取余法、隨機(jī)數(shù)法),將數(shù)據(jù)庫(kù)字段數(shù)據(jù)轉(zhuǎn)換成定長(zhǎng)的Hash值,與這條數(shù)據(jù)的行指針一并存入Hash表的對(duì)應(yīng)位置;如果發(fā)生Hash碰撞(兩個(gè)不同關(guān)鍵字的Hash值相同),則在對(duì)應(yīng)Hash鍵下以鏈表形式存儲(chǔ)。因?yàn)樗饕陨碇恍璐鎯?chǔ)對(duì)應(yīng)的哈希值,所以索引的結(jié)構(gòu)十分緊湊,這也讓哈希索引查找的速度非常快。

2、局限性

哈希索引只包含哈希值和行指針,而不存儲(chǔ)字段值,所以不能使用索引中的值來(lái)避免讀取行,不過(guò),訪問(wèn)內(nèi)存中的行的速度很快,所以大部分情況下這一點(diǎn)對(duì)性能的影響并不明顯。哈希索引數(shù)據(jù)并不是按照索引值順序存儲(chǔ)的,所以也就無(wú)法用于排序。哈希索引也不支持部分索引列匹配查找,因?yàn)楣K饕冀K是使用索引列的全部?jī)?nèi)容來(lái)計(jì)算哈希值的。哈希索引只支持等值比較查詢,包括=、IN()、<=>、也不支持任何范圍查詢。訪問(wèn)哈希索引的數(shù)據(jù)非常快,除非有很多哈希沖突(不同的索引列值卻有相同的哈希值)。當(dāng)出現(xiàn)哈希沖突的時(shí)候,存儲(chǔ)引擎必須遍歷鏈表中所有的行指針,逐行進(jìn)行比較,直到找到所有符合條件的行。如果哈希沖突很多的話,一些索引維護(hù)操作的代價(jià)也會(huì)很高。例如,如果在某個(gè)選擇性很低(哈希沖突很多)的列上建立哈希索引,那么當(dāng)從表中刪除一行時(shí),存儲(chǔ)引擎需要遍歷對(duì)應(yīng)哈希值的鏈表中的每一行,找到并刪除對(duì)應(yīng)的引用,沖突越多,代價(jià)越大。

因?yàn)檫@些限制,哈希索引只適用于某些特定的場(chǎng)合。而一旦適合哈希索引,則它帶來(lái)的性能提升將非常顯著。舉個(gè)例子,在數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用中有一種經(jīng)典的“星型” schema,需要關(guān)聯(lián)很多查找表,哈希索引就非常適合查找表的需求

延伸閱讀1:靜態(tài)哈希簡(jiǎn)介

基于散列技術(shù)的文件組織使我們能夠避免訪問(wèn)索引結(jié)構(gòu),同時(shí)也提供了一種構(gòu)造索引的方法。在對(duì)散列的描述中,使用桶(bucket)來(lái)表示能存儲(chǔ)一條或多條記錄的一個(gè)存儲(chǔ)單位。通常一個(gè)桶就是一個(gè)磁盤塊,但也可能大于或者小于一個(gè)磁盤塊。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
Python特點(diǎn)及應(yīng)用?

一、Python的特點(diǎn)Python是一種高級(jí)編程語(yǔ)言,由Guido van Rossum于上世紀(jì)90年代初開發(fā),它具有以下特點(diǎn):1、語(yǔ)法簡(jiǎn)潔易讀Python使用縮進(jìn)來(lái)表示...詳情>>

2023-10-12 23:00:52
為什么Oracle收購(gòu)MySQL后仍保證其開源免費(fèi)?

一、為什么Oracle收購(gòu)MySQL后仍保證其開源免費(fèi)MySQL在收購(gòu)前一直使用GPL許可分發(fā),而GPL許可是不可撤銷的,這意味著至少被收購(gòu)之前的最后一個(gè)Re...詳情>>

2023-10-12 22:52:49
為什么MySQL對(duì)SQL標(biāo)準(zhǔn)中很多基本用法都不支持?

一、為什么MySQL對(duì)SQL標(biāo)準(zhǔn)中很多基本用法都不支持因?yàn)楫?dāng)年,在微軟.net技術(shù)棧下開發(fā)應(yīng)用,用的就是sql server數(shù)據(jù)庫(kù)。在特性方面,不僅緊跟sql...詳情>>

2023-10-12 22:49:20
數(shù)據(jù)庫(kù)與Microsoft Excel有什么區(qū)別?

一、數(shù)據(jù)庫(kù)與Microsoft Excel的區(qū)別1、結(jié)構(gòu)不同excel即是電子數(shù)據(jù)表,顯示由一系列行與列構(gòu)成的網(wǎng)格。。其中的單元格可以用于存放數(shù)值、計(jì)算式...詳情>>

2023-10-12 22:47:09
web頁(yè)面安全是什么?

一、web頁(yè)面安全是什么Web頁(yè)面安全指的是保護(hù)Web應(yīng)用程序和用戶數(shù)據(jù)免受惡意攻擊和不當(dāng)使用的一系列措施。它旨在確保Web頁(yè)面的機(jī)密性、完整性和...詳情>>

2023-10-12 22:35:44
快速通道
日韩女人做爰大片| 成人在免费观看视频国产| 国产不卡在线播放| 你懂的日韩| 国产韩国精品一区二区三区| 一级女性大黄生活片免费| 欧美a免费| 国产网站免费视频| 欧美激情在线精品video| 91麻豆精品国产片在线观看| 日本免费看视频| 国产一区二区精品久久| 国产网站在线| 欧美a级成人淫片免费看| 精品国产亚洲人成在线| 国产视频网站在线观看| 青草国产在线| 日本伦理网站| 午夜在线亚洲| 你懂的日韩| 久久99爰这里有精品国产| 美国一区二区三区| 久草免费在线视频| 日本伦理网站| 国产一区二区精品| 日韩一级黄色大片| 欧美a级v片不卡在线观看| 免费国产在线视频| 91麻豆精品国产自产在线 | 国产麻豆精品| 国产亚洲精品aaa大片| 国产一区二区精品| 亚飞与亚基在线观看| 国产91视频网| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 99久久精品国产麻豆| 精品视频在线观看视频免费视频 | 成人高清视频免费观看| 国产视频网站在线观看| 欧美a级成人淫片免费看| 欧美a免费| 免费一级片网站| 欧美一级视频免费观看| 国产a免费观看| 青草国产在线| 国产91素人搭讪系列天堂| 91麻豆爱豆果冻天美星空| 精品国产一级毛片| 国产成人精品综合在线| 日本免费乱人伦在线观看 | 日韩在线观看网站| 亚欧成人乱码一区二区| 青青久久精品| 999久久久免费精品国产牛牛| 免费国产在线观看| 午夜精品国产自在现线拍| 国产综合91天堂亚洲国产| 久久久久久久久综合影视网| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 午夜欧美成人久久久久久| 九九国产| 二级片在线观看| 久久成人性色生活片| 成人a级高清视频在线观看| 久久精品免视看国产成人2021| 久久国产精品自线拍免费| 久久久久久久网| 日韩在线观看免费完整版视频| 青草国产在线| 亚飞与亚基在线观看| 99久久网站| 欧美另类videosbestsex久久| 国产原创视频在线| 麻豆系列 在线视频| 日本免费乱人伦在线观看 | 四虎久久影院| 一级片片| 欧美激情一区二区三区视频高清| 香蕉视频亚洲一级| 亚洲天堂免费| 日本免费看视频| 日韩在线观看免费完整版视频| 精品国产香蕉在线播出| 国产激情视频在线观看| 91麻豆精品国产综合久久久| 国产一区二区精品久久91| 久久久久久久网| 国产亚洲精品aaa大片| 一级片片| 一级片免费在线观看视频| 国产麻豆精品免费密入口| 久久国产精品只做精品| 91麻豆精品国产高清在线| 夜夜操网| 成人高清视频免费观看| 精品久久久久久中文字幕2017| 欧美国产日韩在线| 成人免费观看的视频黄页| a级毛片免费观看网站| 国产一区二区福利久久| 精品视频在线观看一区二区三区| 青青久久精品国产免费看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 色综合久久天天综合观看| 欧美另类videosbestsex| 欧美激情一区二区三区在线| 99色视频在线观看| 日本特黄特黄aaaaa大片| 国产伦精品一区三区视频| 成人在免费观看视频国产| 国产不卡福利| 国产麻豆精品高清在线播放| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产不卡在线观看视频| 一a一级片| 成人免费观看视频| 欧美日本免费| 精品在线观看一区| 精品国产亚洲人成在线| 精品久久久久久中文| 一本高清在线| 精品视频在线看 | 免费国产一级特黄aa大片在线| 国产国语对白一级毛片| 午夜精品国产自在现线拍| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 九九精品影院| 久久国产精品永久免费网站| 欧美另类videosbestsex视频 | 中文字幕一区二区三区精彩视频| 国产91素人搭讪系列天堂| 国产不卡在线看| 91麻豆精品国产片在线观看| 久久久久久久免费视频| 亚洲 男人 天堂| 日本伦理黄色大片在线观看网站| 99热视热频这里只有精品| 九九国产| 97视频免费在线观看| 天天色成人网| 久草免费在线视频| 国产一区二区精品尤物| 国产一区二区精品| 国产一区免费在线观看| 日韩中文字幕一区| 国产精品免费久久| 欧美爱爱动态| 99久久精品国产麻豆| 91麻豆精品国产自产在线观看一区 | 成人免费一级纶理片| 91麻豆精品国产片在线观看| 欧美日本韩国| 国产91素人搭讪系列天堂| 国产伦久视频免费观看 视频| 国产麻豆精品高清在线播放| 精品视频在线观看视频免费视频| 国产精品自拍在线观看| 国产原创中文字幕| 国产原创中文字幕| 精品视频一区二区三区免费| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 黄视频网站在线免费观看| 日本伦理黄色大片在线观看网站| 国产视频网站在线观看| 国产视频一区二区在线观看| 成人免费观看网欧美片| 久久久久久久免费视频| 九九热精品免费观看| 日本在线不卡免费视频一区| 国产一区二区福利久久| a级毛片免费观看网站| 欧美一级视| 在线观看成人网| 国产综合91天堂亚洲国产| 国产视频久久久久| 国产视频一区二区在线播放| 国产精品1024永久免费视频| 国产国语对白一级毛片| 亚洲精品久久久中文字| 国产麻豆精品免费视频| 尤物视频网站在线| 人人干人人插| a级黄色毛片免费播放视频| 尤物视频网站在线观看| 国产高清在线精品一区二区| 韩国三级香港三级日本三级la| 毛片高清| 久久久成人网| 高清一级片| 国产伦精品一区二区三区无广告| 日本特黄特色aaa大片免费| 久久国产精品只做精品| 久久国产精品只做精品| 欧美一级视频免费| 欧美a级成人淫片免费看| 免费国产在线视频| 久久精品大片| 亚洲爆爽| 成人免费观看男女羞羞视频| 黄色免费三级|