laxcus相容行儲存(nsm)和列儲存(dsm)兩種資料模型,實現了混合儲存。同時在分布環境裡,做到將資料的分發和備份自動處理,這樣就不再需要人工干預了。
行儲存,為了相容廣大使用者對關聯式資料庫的需求,結構上還是原來的樣子,沒有變化。列儲存,因為是近年才流行起來的一種儲存模型,以前應用得少,大家的了解不多,所以這裡主要講一講列儲存和比較兩種儲存模型的優缺點。
先看下圖,比較一下行/列兩種儲存結構的差異。
圖左側是行儲存模型,每一行由不同屬性的列值組成,資料是從左到右、從上到下的排列,形成行與行連線的布局。圖右側是列儲存模型,同列的資料被組織到一起,成為集合,資料是從上向下、從左到右的排列,形成列集合與列集合連線的布局。
下面說說列儲存的優點:
(1) 壓縮
從列儲存的圖上可以看出,列儲存是把每個列的資料聚集在一起,這種儲存格式就給同質資料的壓縮提供了條件。舉個例子,在"title"這一列中,如果有100個"laxcus"的詞條。行儲存做法是,把"laxcus"寫到每一行的"title"列裡,磁碟裡將出現100個"laxcus"的詞條。在列儲存中,這個工作可以這樣做:在"title"前面加乙個計數器,每增加乙個「laxcus」,計數器加1,累計增加100次,而資料本身不需要改變。兩者相比,行儲存需要的儲存空間是列儲存的100倍,列儲存避免了資料重複的現象,這樣就極大地壓縮了儲存空間。
(2) 索引
在行儲存,索引需要在行資料之外開闢一塊儲存空間,索引和資料是分開的。當檢索資料的時候,首先要找到索引,然後才能定位到資料。我們經常使用的"create index"語句就是建立這樣的對映關係。而在列儲存中,索引和資料的實質是乙個資料。也就是說,當我們檢索資料的時候,找到索引的同時,也找到了資料。這樣的結果就是:與行儲存相比,列儲存省略了索引空間,檢索時效率也比行儲存高。
針對資料庫索引的優化
本文主要對索引的建立及使用做具體描述,至於為什麼要使用索引 使用索引帶來哪些好處 索引的分類等內容這裡不再贅述,如果想知道請參考相關文件。一 如何正確的建立索引 1 對主鍵 外來鍵 建立索引 由於開發中經常通過主鍵或者外來鍵去查詢某條或者多條記錄,所以需要對主鍵 外來鍵建立索引 2 對於經常出現在查...
針對資料庫索引的優化
一 如何正確的建立索引 1 對主鍵 外來鍵 建立索引 由於開發中經常通過主鍵或者外來鍵去查詢某條或者多條記錄,所以需要對主鍵 外來鍵建立索引 2 對於經常出現在查詢條件中的字段建立索引 對於經常出現在查詢條件中的字段建立索引往往能提高查詢效率 3 結合需要返回的字段建立索引 對於需要查詢結果返回的字...
優化Oracle的資料儲存
前幾天有幸和蓋國強老師做了乙個技術交流,從中學到了不少關於oracle的相關知識,其實感受最深的是優化儲存。傳統的儲存我們一般通過表空間規劃,表和索引的分離來提搞效能。但是隨著軟硬體的提高,現在可以更簡單的來優化資料儲存。眾所周知,ssd的i o效能指 標 iops 即每秒多少次io動作 上,可以達...