1. 程式人生 > 資料庫 >sql與各個nosql資料庫使用場景的講解

sql與各個nosql資料庫使用場景的講解

sql為主幹為什麼我這樣理解:

單從技術角度來說

  • 關係型網格 充分的體現了現實事務
  • 對事務,審計,快閃記憶體等等對資料的重視所以如何一些特別主要的資料,一定要放到sql裡面。一個系統裡面至少有使用者資訊是重要的資料。
  • 所以sql必須有,而且資料儲存的主幹

什麼時候引入nosql

先看看sql - > sql + nosql的過程。

https://www.jb51.net/article/79236.htm 為什麼要使用NoSQL

這些nosql?

對java語言而言:

  • redis:用於快取 - 讀速度極快(記憶體中)
  • mongoDb - 讀寫事務都是均衡的.node.js開發的json
  • Neo4j - .java的的比較像SQL但查詢更快,可惜高階功能收費… - 社交(影象資料庫)
  • Cassandra - 寫資料比讀快.-用於日誌的存放。
  • HBase 離線分析

我的設想:

java語言而言:

  • - redis用於快取(值裡面存javabean)和不需要儲存的熱資料
  • - mongoDb用於不太重要的但要儲的內容.
  • - Cassandra 用於管理 日誌強烈建議(把日誌放到資料庫裡面。)
  • - HBASE 離線分析,大資料
  • - solr,ES - 站內搜尋和代替裡面的SQL等
  • - 或者用neo4j代替sql資料庫,有對事務要求的時候,單獨起一個優先順序為2的執行緒存到sql裡面.

NoSQL紀元

當下已經存在很多的NoSQL資料庫,比如MongoDB、Redis、Riak、HBase、Cassandra等等。每一個都擁有以下幾個特性中的一個:

  • 不再使用SQL語言,比如MongoDB、Cassandra就有自己的查詢語言
  • 通常是開源專案
  • 為叢集執行而生
  • 弱結構化——不會嚴格的限制資料結構型別

適用的場景

儲存使用者資訊,比如會話、配置檔案、引數、購物車等等。這些資訊一般都和ID(鍵)掛鉤,這種情景下鍵值資料庫是個很好的選擇。

不適用場景

1)取代通過鍵查詢,而是通過值來查詢。Key-Value資料庫中根本沒有通過值查詢的途徑。

2)需要儲存資料之間的關係。在Key-Value資料庫中不能通過兩個或以上的鍵來關聯資料。

3)事務的支援。在Key-Value資料庫中故障產生時不可以進行回滾。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。如果你想了解更多相關內容請檢視下面相關連結