1. 程式人生 > >免費的實時資料庫,我們該選誰?----BerkeleyDB與SQLite評測對比

免費的實時資料庫,我們該選誰?----BerkeleyDB與SQLite評測對比

        最近要做一個專案,需要用到實時資料庫,PI太貴了,想找一個免費的,實在不行就只能自己編了。找了半天,找到了FastDB、BerkeleyDB和SQLite.

        FastDB是記憶體型資料庫,據說很快,但資料庫大小不能大於實體記憶體,不然。。。反正我看到這就走了,我可是要一秒內處理幾千個資料,還要儲存8小時以上的啊!BerkeleyDB和SQLite倒沒有資料庫大小不能大於實體記憶體的限制,我對他們的效能進行了測試,結果如下:

Berkeley DB Sqlite
插入10000條記錄耗時 0.08 0.42
插入100000條記錄耗時 2.31 3.81
插入7200000條記錄耗時 1024.34 249
插入57600000條記錄耗時 12860.78 2155.14
插入172800000條記錄耗時 48039.64 6352.06
10000條記錄查1記錄耗時 少於0.01 少於0.01
100000條記錄查1記錄耗時 少於0.01 少於0.01
7200000條記錄查1記錄耗時 少於0.01 少於0.01
57600000條記錄查1記錄耗時 0.03 0.16
172800000條記錄查1記錄耗時 0.03 0.09
10000條記錄資料庫大小 0.628M 0.527M
100000條記錄資料庫大小 5.29M 5.32M
7200000條記錄資料庫大小 516M 405M
57600000條記錄資料庫大小 3087.13M 3925.8M
172800000條記錄資料庫大小 11890.7M 10621.2M
*機器配置:Core2 E4500CPU2G記憶體 

上表為兩種資料庫只建一個索引,Berkeley DB不支援事務、Sqlite支援事務情況下的資料,如果Berkeley DB開啟事務支援,速度會下降很大的數量級,根本不能滿足需求。另外在程式崩潰後Berkeley DB資料庫不可用,Sqlite資料庫仍可正常使用。