2016-08-03 45 views
1

在許多非sql引擎中發現LSM樹已成功使用,它的數據按鍵排序,不像哈希表,因此可以在kv存儲之外實現許多潛在用途。例如,時間序列數據庫(TSDB)可能很適合使用level db作爲其引擎。傳統的RDBMS和許多表系統如何?像LSM-tree這樣的數據引擎是否也適合?使用像LevelDB這樣的LSM樹作爲RDBMS的存儲引擎

回答

1

可能是。如果你打算設計索引以利用leveldb的優勢(即快速順序閱讀),那麼它可能運作良好。

事實上,我已經在leveldb(linqdb)之上構建了一個小關係數據庫,其中索引只是存儲爲鍵值的列的排序值。我的發現是,查詢這樣的結構並不像sqlite的索引列那樣快(大約慢40%),但寫出的表現優於大幅度。

當然,查詢速度有很多因素,LSM只是一個底層的數據結構,最能體現在寫作上。

其他信息here

+0

事實上,我們正在試圖建立一個表系統,但讀取或批量寫入可能是典型的用例。目前我們正在使用內存散列索引,但不支持範圍查詢和排序查詢。我正在研究LSM,因爲它不會花費太多的內存,並且它的密鑰是按順序存儲的。 –

+0

@bugs king LSM最適合用於磁盤(在合併排序中寫入的大塊數據),所以不知道它在內存索引 – ren

+0

中的最佳狀態是否存在實際上是在開發中的基於lsm-tree的mysql被稱爲myrocks,但是關於它們的性能和延遲的洞察力的資源太有限。 –