Tokumx vs Mongodb
Mongodb是一個文檔型nosql數據庫 採用C++編寫 Mongo DB最大的優勢在於全部的數據持久操作都無需開發者手動編寫SQL語句,直接調用方法就能夠輕松的實現CRUD操作。
非常多人覺得mongodb不支持事務。事實上嚴格上說,mongodb不是一個全然事務型的數據庫,他的有一些操作是事務過程的。
這裏我想推舉的另外一款和mongo非常類似的數據庫是tokumx,他是tokuek的開源版本號。能夠說他有像mongo一樣的nosql特性,也有關系型數據庫的事務特性,支持document級鎖。
以下我們簡單比較下他們的優缺點。
1.插入性能對照
tokumx比mongodb不管是讀寫都有數倍的提升。
我在單機上測試過,100萬條數據的插入時間,mongodb是tokumx的三倍左右
2.IPOS對照
IPOS即每秒進行讀寫(I/O)操作的次數。我們知道硬盤的壽命是有限的。IO越頻繁,壽命越短,因為tokumx使用的是分型樹索引(TokuMX Fractal Tree(R) indexes),它是btree的批量版本號,能夠有效地降低IO次數。提高讀寫效率。
3.數據壓縮效率對照
tokumx支持"quicklz", "lzma", "zlib"三種壓縮算法,在空間存儲方面比mongo節省90%以上,這個是重點,因此tokumx能夠考慮用來做大型日誌存儲。
4.tokumx的其它特性
* Oplog支持按天分區,能夠依據expireOplogDays設置過期時間,刪除過期的Oplog,緩解磁盤壓力
* 優化分片中塊遷移。去除了很多全局鎖及庫級鎖,簡化及優化了不同片之間的數據轉移
* Document級別鎖,非Db級、非Collection級鎖!
* 支持ACID和事物MVCC特性
* 不用操心磁盤數據碎片的問題!
* 自己控制內存而非交給系統控制 不像mongodb使用MMAP內存控制
* 擁有比mongodb更好的集群能力
PS:最後須要說明的一點是,為什麽tokumx比mongodb強悍那麽多,但使用得卻不多呢?原因是tokumx進程crash掉的幾率遠高過mongo - -#
Tokumx vs Mongodb