免費的實時資料庫,我們該選誰?----BerkeleyDB與SQLite評測對比
阿新 • • 發佈:2019-02-07
最近要做一個專案,需要用到實時資料庫,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 |
上表為兩種資料庫只建一個索引,Berkeley DB不支援事務、Sqlite支援事務情況下的資料,如果Berkeley DB開啟事務支援,速度會下降很大的數量級,根本不能滿足需求。另外在程式崩潰後Berkeley DB資料庫不可用,Sqlite資料庫仍可正常使用。