Nosql資料庫特徵總結
阿新 • • 發佈:2019-02-10
1.關係資料庫的不足
- 大量資料的寫入處理
- 為有資料更新的表做索引或表結構變更
- 欄位不固定時應用
- 對簡單查詢需要快速返回結果的處理
2. Nosql資料庫的出現和優點
為了彌補關係型資料庫的不足,出現Nosql資料庫,關係型資料庫應用廣泛,能進行事務處理和join等複雜處理。相對的Nosql資料庫只能應用在特定領域,基本上不進行復雜的處理,但它恰恰能彌補關係型資料庫的不足。
- 易於資料的分散
- 適合大量資料的寫入處理
- 希望對資料進行快取處理
- 希望對陣列型別的資料進行高速處理
- 希望進行全部儲存
3. Nosql資料庫分類
臨時性鍵值儲存(memcached)
在記憶體中儲存資料,可以進行快速的讀取和儲存處理,資料可能丟失
永久性鍵值儲存(Tokyo Tyrant)
硬碟上儲存資料,可以進行快速的讀取和儲存處理(效能不如memcached),資料不會丟失
臨時/永久性簡直儲存(redis)
同時在記憶體和硬碟上儲存資料,可以進行快速的讀取和儲存處理,儲存在硬碟上的資料不會丟失,適合處理陣列型別的資料
面向文件的資料庫(MongoDB)
不定義表結構,可以使用複雜的查詢條件
面向列的資料庫(Hbase)
高擴充套件性(特別是寫入處理),應用比較困難。
1.memcached:
- 揮發性的鍵值儲存
- 一般作為關係型資料庫的快取來使用
- 具有非常快的處理速度
- 由於存在資料丟失的可能,所以一般用來處理不需要持久儲存的資料
- 用於需要使用expires時(需要定期清除資料)
- 使用Consistent Hashing演算法來分散資料
- 缺點:資料可能丟失,鍵不支援模糊查詢
2.Tokyo Tyrant
- 永續性的鍵值儲存
- 用來處理需要持久儲存,高速處理的資料
- 具有非常快的處理速度
- 用於不需要定期清除資料時
- 使用Consistent Hashing演算法來分配資料
3. Redis
- 兼具memcached和Tokyo Tyrant優勢的鍵值儲存
- 擅長處理陣列型別的資料
- 具有非常快的處理速度
- 可以高速處理時間序列的資料,易於處理集合運算
- 擁有很多可以進行原子處理的方法
- 使用Constent Hashing演算法來分散資料
4.MongoDB
- 面向無需定義表結構的文件資料
- 具有非常快的處理速度
- 通過BSON的形式可以儲存和查詢任何型別的資料
- 無法進行JOIN處理,但是可以通過嵌入來實現同樣的功能
- 使用sharding演算法來分散資料
5.MySql資料庫NoSql化
外掛HandlerSocket,它就是Mysql的非SQL介面,通過它可以不使用SQL就能讀取和更新MySql的資料。HandlerSocket雖然不支援事務處理,但是這種單純的處理避免了使用SQL帶來的額外開銷,可以高速地完成資料處理。就讀取資料是的效能來說,優於memcached.