Javaweb的儲存效能(1)

2021-08-17 13:01:46 字數 676 閱讀 9946

b+樹與lsm數

為了改善資料訪問特性,檔案系統或者資料庫系統通常會對資料排序後儲存,加快資料的檢索速度,這就需要保證資料在不斷的更新、插入、刪除後依然有需,傳統關聯式資料庫的做飯就是使用b+數。

b+樹說白了,b+樹就是一棵n叉排序樹。以節點為儲存單位,從根節點開始檢索(節點編號和物理位置),將其載入到資料庫,再找子節點,直到找到所需資料。

目前大部分的關係型資料庫都採用的二級索引的b+樹,樹的層次最多三層(所以可能需要5次檢索才能更新一條記錄)。

lsm樹(之前沒怎麼聽說過)

目前大多數的nosql(非關係型資料庫——not only sql)

lsm可以看作乙個n階合併樹。資料操作(插入、修改、刪除)都在記憶體中進行,並且都會建立乙個新紀錄(修改會記錄新的資料值、未刪除會記錄乙個刪除標誌),這些資料在記憶體中仍然還是一顆樹,當資料量超過設定的記憶體設定閾值後,會將這棵樹和磁碟中最新的的排序樹合併。當這棵樹排序的數量超過也超過設定閾值後,和磁碟上下一集的排序樹合併,合併過程中,會用最新更新的資料覆蓋舊的資料(或記錄為不同版本)。

當其讀操作主要集中在最近寫入的資料時,使用lsm樹可最大程度減少磁碟的訪問次數(減少磁頭的移動速度),加快訪問速度。

當然,b+不是只能用於關聯式資料庫,lsm也不是只能用於nosql.或許隨著ssd儲存技術的逐漸成熟,b+樹又會變得不一樣吧。(現在ssd還是好貴啊,那個**用得起??)

java web中IBATIS的工作原理(1)

這段時間閒來無事重新研究下ssh和ssi的模型,以前寫過一篇關於hibernate對jdbc的封裝的文章,這不就再來寫一篇ibatis的。相對於hibernate的一站式orm解決方案而言,ibatis則是一種半自動化的orm的實現方案了,怎麼說呢,大家看hibernate是對資料庫結構提供了較為完...

IBMDS儲存儲存效能調優

ibm儲存適用,其他儲存有類似引數。1 調整全域性cache引數 1 1 start and stop cache flush 這兩個引數影響控制器處理cache區域的操作,在這中情況下是按照先進先出的原則往磁碟上寫資料。這只對開啟了寫cache的情況下適用。在一般的情況下,在決大多數時候start...

mysql儲存效能優化

1 使用索引 每張表最多可以做16個索引,支援多列索引和全文索引 建立索引 create index index name on users username 檢視索引 show index from users 是一把雙刃劍,建不建立索引,主要看錶的功能,找好乙個平衡點,2 使用explain分析...