一、為什么Cassandra的寫速度比MySQL快
Cassandra 的寫速度比 MySQL 快的兩大根本原因。1、cassandra沒有sql解析層,這是個大塊。2、cassandra采用memstable+sstable的模型,最大化的提高數據的寫入性能,磁盤操作只有順序寫。nosql產品的數據寫入buffer非常大, nosql用數據安全換取高性能, 其實沒有絕對的優勢。
Cassandra特點
(1) 列表數據結構
在混合模式可以將超級列添加到5維的分布式Key-Value存儲系統。
(2) 模式靈活
使用Cassandra,不必提前解決記錄中的字段。你可以在系統運行時隨意的添加或移除字段。
(3) 真正的可擴展性
Cassandra是純粹意義上的水平擴展。為給集群添加更多容量,可以增加動態添加節點即可。不必重啟任何進程,改變應用查詢,或手動遷移任何數據。
(4) 多數據中心識別
可以調整節點布局來避免某一個數據中心起火,一個備用的數據中心將至少有每條記錄的完全復制。
(5) 范圍查詢
如果不喜歡全部的鍵值查詢,則可以設置鍵的范圍來查詢。
(6) 分布式寫操作
可以在任何地方任何時間集中讀或寫任何數據。并且不會有任何單點失敗。
Cassandra寫數據時,首先會將請求寫入Commit Log以確保數據不會丟失,然后再寫入內存中的Memtable,超過內存容量后再將內存中的數據刷到磁盤的SSTable,并定期異步對SSTable做數據合并(Compaction)以減少數據讀取時的查詢時間。因為寫入操作只涉及到順序寫入和內存操作,因此有非常高的寫入性能。而進行讀操作時,Cassandra支持像LevelDB一樣的實現機制,數據分層存儲,將熱點數據放在Memtable和相對小的SSTable中,所以能實現較高的讀性能。
延伸閱讀:
二、MongoDB是什么
非關系型數據庫(nosql ),屬于文檔型數據庫。MongoDB采用類JSON的documents來存儲數據。數據結構由鍵值(key=>value)對組成。
MongoDB采用動態數據模型schema,這意味著不需要預先定義表的數據類型和字段名。當MongoDB需要更新文檔documents的時候,可以輕松增加新的字段名或者刪除舊的字段。MongoDB讓數據結構更加層級化,因而存儲數組等復雜數據結構。 在同一個集合collection中,文檔document對字段也沒有強約束,因此更容易設計差異化的數據結構。