99热综合福利导航,久久66日韩,91一二区少妇,久久产国视频,日韩久久久五月精品八区,丰满狐狸精在线电影,一区婷婷久久,日韩欧美另类在线,欧美中文字幕区

星空人工智能技術(shù)網(wǎng)

深入淺出話DB|柏睿數(shù)據(jù)RapidsDB高性能解密之索引使用

  索引!

又見索引!

各位朋友知道,索引幾乎伴著所有結(jié)構(gòu)化和非結(jié)構(gòu)數(shù)據(jù)庫出現(xiàn),就像紫薇格格旁邊一定站著丫鬟金鎖那樣,就看是冰冰伴著心如還是耀琪伴著海陸。每個(gè)數(shù)據(jù)庫使用的索引技術(shù)都有點(diǎn)像,但又不全像??梢钥隙ǖ氖?,索引的唯一目標(biāo)就是為數(shù)據(jù)主人跑腿,實(shí)現(xiàn)更高的查詢性能!

言歸正傳,我們來看看柏睿數(shù)據(jù)內(nèi)存分布式數(shù)據(jù)庫RapidsDB的索引是怎么扮演好它的加速功能吧!

RapidsDB的索引包括了3類索引:

n 第一類:行存表索引

跳表索引:

RapidsDB中的默認(rèn)索引類型是跳表索引,對(duì)比其他大多數(shù)數(shù)據(jù)庫(比如MYSQL)使用的B-Tree索引,RapidsDB將跳表索引優(yōu)化為在內(nèi)存中運(yùn)行,不僅可以實(shí)現(xiàn)無鎖并提供極快的插入性能,還提供Btree類似的O(log(n))查找性能,非常適合OLTP遍歷查詢。

999.jpg

索引使用到的無鎖(或者叫非阻塞)算法是跳表索引的一個(gè)大特點(diǎn):它使數(shù)據(jù)庫線程始終可以運(yùn)行,尤其在多核CPU硬件上實(shí)現(xiàn)高并發(fā)負(fù)載。同時(shí)還擺脫了Btrees需要使用復(fù)雜的鎖定方案來實(shí)現(xiàn)線程安全的困局。對(duì)BWtree這類比較新的無鎖索引數(shù)據(jù)結(jié)構(gòu),規(guī)避掉被設(shè)計(jì)遠(yuǎn)超跳表的復(fù)雜數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)無鎖??梢哉f跳表的簡單性使其非常適合無鎖實(shí)現(xiàn)。

哈希索引:

哈希索引在數(shù)據(jù)庫中十分常見。一般情況下,只有當(dāng)查詢對(duì)索引中的每一列都使用相等過濾器時(shí),才會(huì)使用哈希索引。所以按理說,哈希索引應(yīng)該只在用戶的特定數(shù)據(jù)集和工作負(fù)載有明顯的需要和可測量的好處時(shí)使用。在這些特定情況下,哈希索引提供了對(duì)唯一值的快速精確的匹配訪問。

n 第二類:列存表索引

列存儲(chǔ)索引利用列存儲(chǔ)技術(shù)高效地從磁盤存儲(chǔ)中檢索大量值(建議使用閃存或固態(tài)硬盤)。因?yàn)榱写鎯?chǔ)索引通常提供大量壓縮數(shù)據(jù),這是由磁盤支持的,不像RapidsDB中的其他類型的索引那樣要求所有數(shù)據(jù)都必須存放于內(nèi)存中,所以對(duì)于時(shí)刻處理PB級(jí)數(shù)據(jù)量的分析型工作的負(fù)載優(yōu)化非常有用。

列存索引是將列存表中一列或多列定義為鍵列。數(shù)據(jù)按鍵列順序存儲(chǔ)以提高檢索性能。由此引入行段概念,行段是列存索引中存儲(chǔ)在一起的一組行,每個(gè)行都由列段組成。RapidsDB存儲(chǔ)每行的元數(shù)據(jù),其中包括給定段的總行數(shù),以及跟蹤哪些行已被刪除的位掩碼。而且RapidsDB會(huì)在列存索引鍵列上的一組行段進(jìn)行排序。這意味在已排序的行段組中,不會(huì)有行段與構(gòu)成列存索引鍵的列的值范圍重疊。在對(duì)表運(yùn)行 INSERT、LOAD 或 UPDATE 查詢后創(chuàng)建更多段時(shí),會(huì)形成新的段組。

在以下四種情況下,列存索引對(duì)RapidsDB的列存表起明顯的加速效果:

?查詢僅掃描索引指定的列段,如測試表Products的索引為Qty,查詢 SELECT SUM(Qty) FROM Products;則只需要掃描Qty列段,并且利用列段中的值做SUM計(jì)算。

?查詢只引用行段中的列存索引元數(shù)據(jù)。最簡單例子:SELECT COUNT(*) FROM Products;使用MAX或者M(jìn)IN也可以達(dá)到相同的效果。

?查詢過濾條件使用列存索引元數(shù)據(jù)的最小值和最大值,判斷是否跳過掃描對(duì)應(yīng)的行段。優(yōu)化效率取決于實(shí)際可以跳過的段的百分比。

?在表關(guān)聯(lián)時(shí),列存索引被用在關(guān)聯(lián)條件時(shí),只需要簡單掃描行段的值,就可以完成關(guān)聯(lián)條件的過濾,同樣的跳過了IO磁盤掃描的開銷,提升性能。

n 第三類:特殊數(shù)據(jù)類型索引

全文索引(Full-Text Index):

全文搜索使用逆向索引的方式在大量文本中搜索單詞或短語。這類搜索可以是精確也可以是模糊的,目前只支持CHAR、VARCHAR、TEXT和LONGTEXT這幾種數(shù)據(jù)類型。目前對(duì)于RapidsDB來說,僅在列存表上支持全文索引。此外,全文索引CREATE TABLE查詢的一部分啟用。這意味著在創(chuàng)建表后不能刪除或更改全文索引。如果表被刪除,那么索引會(huì)被自動(dòng)刪除。

地理空間索引:

地理空間索引在國內(nèi)項(xiàng)目中使用得不多,它用存儲(chǔ)在保存空間數(shù)據(jù)的列上,用來定義地理空間索引,并用于加快對(duì)它們的查詢。地理空間索引使用控制參數(shù)值(6-32)對(duì)多邊形和線型進(jìn)行切分。數(shù)字越小索引使用的內(nèi)存消耗越小、插入和更新等操作越快,但查詢時(shí)間就慢。越大的控制參數(shù)值則以內(nèi)存和插入性能為代價(jià)來提高查詢性能。

在國有大行普惠金融項(xiàng)目應(yīng)用中,現(xiàn)場使用的都是列存表,柏睿數(shù)據(jù)對(duì)這些表都做了創(chuàng)建列存索引的優(yōu)化操作,并且按客戶要求的深度優(yōu)化中,通過對(duì)業(yè)務(wù)應(yīng)用分析,對(duì)索引鍵做響應(yīng)的調(diào)整,獲得提升30%到幾倍的優(yōu)化效果。

星空人工智能技術(shù)網(wǎng) 倡導(dǎo)尊重與保護(hù)知識(shí)產(chǎn)權(quán)。如發(fā)現(xiàn)本站文章存在版權(quán)等問題,煩請(qǐng)30天內(nèi)提供版權(quán)疑問、身份證明、版權(quán)證明、聯(lián)系方式等發(fā)郵件至1851688011@qq.com我們將及時(shí)溝通與處理。?。?a href="/">首頁 > 大數(shù)據(jù) » 深入淺出話DB|柏睿數(shù)據(jù)RapidsDB高性能解密之索引使用

感覺不錯(cuò),很贊哦! ()
分享到:

相關(guān)推薦

留言與評(píng)論(共有 0 條評(píng)論)
   
驗(yàn)證碼:
尖扎县| 林周县| 蓬安县| 新沂市| 上饶县| 石首市| 枝江市| 阿克陶县| 临武县| 桂东县| 漾濞| 沾化县| 任丘市| 齐河县| 林口县| 东兰县| 嘉善县| 吐鲁番市| 马尔康县| 义乌市| 潜江市| 昌江| 漳浦县| 枞阳县| 且末县| 文登市| 藁城市| 类乌齐县| 盐源县| 东乡族自治县| 道真| 饶平县| 千阳县| 教育| 察雅县| 永登县| 安多县| 湟中县| 台北县| 驻马店市| 贞丰县|