超碰激情 I 成人福利网站 I 淫国产 I 曰批视频免费30分钟成人 I 刘亦菲裸体视频一区二区三区 I 午夜久 I 尤物综合 I 亚洲一区av在线观看 I 欧美亚洲国产精品久久高清 I 欧美老熟妇乱子伦视频 I 无码中出人妻中文字幕av I 久久美女福利视频 I 精品无人区乱码1区2区3区在线 I 性饥渴的农村熟妇 I 色综合综合色 I 少妇人妻88久久中文字幕 I 久久夜色精品国产噜噜av I 老熟妇仑乱视频一区二区 I 男女做爰猛烈叫床视频动态图 I 日本大片一区二区 I 人成午夜免费视频在线观看 I 激情婷婷av I 男女下面一进一出免费视频网站 I 久久影视一区 I 午夜污网站 I 先锋人妻无码av电影 I 久久久久久久岛国免费网站 I 又粗又大又黄又硬又爽免费看 I 人妻无码免费一区二区三区 I www.色成人100 I 欧美高清网站 I 精品国产第一页 I 国产suv一区二区三区88区 I 橹图极品美女无圣光 I 午夜宅男欧美

產品分類

當前位置: 首頁 > 工業電氣產品 > 端子與連接器 > 線路板連接器 > FFC連接器

類型分類:
科普知識
數據分類:
FFC連接器

數據存儲方式有哪些?這3種數據存儲方式了解嗎?

發布日期:2022-04-20 點擊率:68


數據存儲具有很強的現實意義,只有采取合理的數據存儲方式,才能夠有利于數據的管理、檢索等。為增進大家對數據存儲方式的認識,本文將對三種數據存儲方式予以介紹。如果你對數據存儲方式具有興趣,不妨繼續往下閱讀哦。

數據存儲在實際應用中,就是怎么用數據庫把我們的業務數據保存起來。從宏觀角度看,大致包含三大類技術:B-TREE,LSM&SSTable,列式存儲。


一、B-TREE

B-TREE和關系模型同步出現于70年代,到90年幾乎占領了所有的數據庫市場。B-TREE簡單的理解就是多葉節點的樹,每個葉節點并非是每行數據,而是數據庫的的數據塊。這么設計的原因是樹的層次影響著搜索性能,而且磁盤的讀寫是基于塊(BLOCK)的,使用塊可以大大減少節點數量,進而減少樹的層次。

B-TREE的特點在于讀寫性能比較穩定,響應時間和磁盤隨機讀寫的時間成正比(10ms)。并且由于B-TREE對應到數據庫的每條記錄,可以很容易的實現事務、行鎖和隔離級別。讀性能略高于LSM算法。而且B-TREE基于塊的存儲方式,可以很容易的把內存中的塊和磁盤上的塊一一對應起來,很容易的實現緩存。在實際應用中,前2-3級節點內都可以在緩存中讀取,由此大大提高了訪問效率。

而不足在于真正面對海量數據時(如數據量進入到百億級別時),由于樹層數和緩存比率的減少,會導致性能逐步下降。此外由于B-TREE在寫入時也需要通過搜索定位到葉節點,因此相對于LSM,其寫入時開銷較大。PS:其實現在已經出現了分布式的B-TREE,比如oracle的localeindex。

二、LSM&SSTable

目前主流的存儲架構還是磁盤+內存,磁盤順序讀寫的性能高于隨機讀寫三個數量級,而在內存中進行隨機讀寫的的性能也大于磁盤的三個數量級,可以得出用磁盤當做磁帶一樣只做順序讀寫,而把內存當做磁盤,提供所有的隨機讀寫訪問的總體思想,這也就是出LSM-Tree的算法。

簡單說就是在內存中維護一張MemTable,把所有最新的數據都寫到其中,所有數據依據key值進行排序(隨機讀寫)。當MemTable的大小到大閾值之后,把它寫到磁盤上,形成一個個的SSTable(順序寫)。每個SSTable構造一個索引,由于SSTable中的數據都是排好序的,所以索引較小,可以保存在內存里面,所以所有的索引搜索動作都是在內存進行的(隨機讀)。

每次查找的過程如下:首先在MemTable中搜索(內存隨機查找),如果沒有依次在每個SSTable的索引中查找(內存隨機查找)。把查找從磁盤隨機動作變成了基于內存的隨機動作。隨著SSTable的增多,搜索的次數會增加,為了提高性能,后臺會把多個SSTable合并為一個(如Hbase、LevelDB等等)。并且提供布隆過濾器(BloomFilter)來過濾掉不需要的SSTable。從總體效果上看,寫入的效率大大高于基于B-Tree的存儲引擎,而讀取性能接近于B-Tree。

LSM&SSTable在寫入密集型應用中有較大優勢,同時在讀取方面也有不錯的表現。不足之處在于上面提到的,不定期對增加的SSTable進行合并時,對于數據庫會產生一定壓力。

由于這些特點,LSM&SSTable大量應用于許多組件中,比如Hbase、LevelDB等KeyValue數據庫中,同時也在消息引擎Kafka和搜索引擎Solr使用。


三、列式存儲

以上兩種存儲引擎主要適合于聯機場景,如有大量的基于客戶各類行為數據的批量計算的推薦系統中,以及預計客戶的流動性缺口等等。在這些場景中,列式存儲在性能上有非常明顯的優勢。隨著各類大數據應用的擴展,列式存儲從和Hive共生的ORC,到和Spark共生的Parquet也被應用到了各個數據分析應用中。

從傳統的數據分析類應用,到人工智能應用,都需要遍歷整個數據集,上面也提到磁盤在順序讀寫和隨機讀寫性能方面的巨大差距,所以所有的數據倉庫都會在全表遍歷中采用磁盤順序遍歷。所以遍歷的文件空間越小,性能越高。列式存儲按列對數據進行保存,以減少數據庫每次訪問的文件尺寸。

首先,分析應用一般局限于對于表中的部分字段都分析,列是存儲可以讓引擎只訪問部分字段,減少吞吐量。其次,列式存儲數據壓縮能力更強。因為行級別的存儲方式壓縮是基于數據塊,壓縮比大致為50%-70%左右,而且壓縮比越大,解壓縮對于CPU的占用也越大。由于單列內的數據非常類似,尤其是各種碼值類的數據,比如性別(男、女、其他),行數越多,壓縮比越大。10億客戶的性別,也可以簡單的表達為如下這樣:“連續100個男性、連續50個女性、又連續80個男性、連續70個女性”,按照每行的位置依次表達下去。

再次,同樣由于列內數據的取值范圍有限,也可通過位圖來表達,比如10表示男,01表示女,因此只用2個bit就可以表示出來,從而進一步增加壓縮比。在在許多場景中能夠把以前數G的數據壓縮為幾百K。由此可以顯著降低批量計算時對于存儲的吞吐壓力和提升計算效率。

當然列式存儲也并非完美,在更新時列式存儲相對行式存儲,很難直接做到就地修改的效果,往往需要把整列鎖住,重新計算,重新生成整個列。所以列式存儲更多的適合于數據分析時需要全表遍歷的場景。

以上便是此次小編帶來的數據存儲相關內容,通過本文,希望大家對數據存儲方式具備一定的了解。如果你喜歡本文,不妨持續關注我們網站哦,小編將于后期帶來更多精彩內容。最后,十分感謝大家的閱讀,have a nice day!


下一篇: PLC、DCS、FCS三大控

上一篇: 為什么說EDA軟件是芯

推薦產品

更多