a***@ptt.cc
2007-07-06 19:17:09 UTC
爬了一些文,Javaworld也全文檢索了,甚至也google了許久,
發現Java的programmer好像很少在用 BerkeleyDB 耶?
這個連Google都愛用的小巧可愛的DB
http://www.oracle.com/database/berkeley-db.html
怎麼到了Java世界裡好像爹不疼娘不愛了...:p
最近我在試著實做try它...發現了一些問題,
希望也有在摸的前輩能指點一下迷津...
因為初學乍用,我是以最簡單的類似Hash的方式去操作他,
用最簡單的 <Key, Value> 概念,使用Binding的方法。
八大primitive data 用 TupleBinding裡的getPrimitiveBinding,例如存Long用
EntryBinding myBinding = TupleBinding.getPrimitiveBinding(Long.class);
後來摸出了存放物件的方法,例如
EntryBinding dataBinding = new SerialBinding(classCatalog, MyObject.class);
接著用dataBinding.objectToEntry()來序列化
dataBinding.entryToObject()來反序列化,從DB內取得物件
發現他存取速度真的很快,比MySQL的SELECT * 之類的 Query要來的快太多了!
(簡直就是有如Java內部的HashMap離線版 XD )
但是經由我反覆的insert/delete/update後,問題來了,
我去觀察 Database Environments 底下的 00000000.jdb和je.lck檔案
發現 *.jdb 檔案大小不斷的肥大起來,既使裡面存的筆數一樣,
我新增1000筆再刪除1000筆 *.jdb他老兄還是不斷的在長大!!
請問有無最佳化DB的方式,能把DB裡不必要的增刪資訊給去除掉?
或是當初在設 Environment環境時是不是有哪些參數可以調整?
把Cache調大有用嗎?
還有他的Txn (Transaction)相關的該如何設定?
BerkeleyDB能自動做到多Thread的sync嗎?該Lock時會自動Lock嗎?
以上的問題還有觀念有誤的地方,
希望有摸過的先進不吝指教一番,謝謝囉!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.31.160.158
發現Java的programmer好像很少在用 BerkeleyDB 耶?
這個連Google都愛用的小巧可愛的DB
http://www.oracle.com/database/berkeley-db.html
怎麼到了Java世界裡好像爹不疼娘不愛了...:p
最近我在試著實做try它...發現了一些問題,
希望也有在摸的前輩能指點一下迷津...
因為初學乍用,我是以最簡單的類似Hash的方式去操作他,
用最簡單的 <Key, Value> 概念,使用Binding的方法。
八大primitive data 用 TupleBinding裡的getPrimitiveBinding,例如存Long用
EntryBinding myBinding = TupleBinding.getPrimitiveBinding(Long.class);
後來摸出了存放物件的方法,例如
EntryBinding dataBinding = new SerialBinding(classCatalog, MyObject.class);
接著用dataBinding.objectToEntry()來序列化
dataBinding.entryToObject()來反序列化,從DB內取得物件
發現他存取速度真的很快,比MySQL的SELECT * 之類的 Query要來的快太多了!
(簡直就是有如Java內部的HashMap離線版 XD )
但是經由我反覆的insert/delete/update後,問題來了,
我去觀察 Database Environments 底下的 00000000.jdb和je.lck檔案
發現 *.jdb 檔案大小不斷的肥大起來,既使裡面存的筆數一樣,
我新增1000筆再刪除1000筆 *.jdb他老兄還是不斷的在長大!!
請問有無最佳化DB的方式,能把DB裡不必要的增刪資訊給去除掉?
或是當初在設 Environment環境時是不是有哪些參數可以調整?
把Cache調大有用嗎?
還有他的Txn (Transaction)相關的該如何設定?
BerkeleyDB能自動做到多Thread的sync嗎?該Lock時會自動Lock嗎?
以上的問題還有觀念有誤的地方,
希望有摸過的先進不吝指教一番,謝謝囉!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.31.160.158