數據庫使用系列專欄:數據庫使用系列文章
目錄
1 NoSql與關係型數據庫應用場景對比
Nosql
1.適合存儲非結構化數據存儲,數據量且不可預期。如:評論,文章
2.排行榜數據獲取,實時更新的數據。如:遊戲榜排名,用戶投票
3.限時搶購活動。如:淘寶搶購活動
4.反垃圾系統。如:敏感詞
5.消息實時推送。如:微博推送
6.緩存。如:熱點數據
SQL
1.適合存儲結構化數據。如:賬號,地址
2.事務性,數據一致性。如:銀行
3.複雜數據邏輯處理,需要JOIN關聯
2 非關係型數據庫(NoSql)應用場景對比
分類 | 典型產品 | 典型應用場景 | 數據模型 | 優點 | 缺點 |
鍵值(key-value)存儲 |
Redis Memcached |
內容緩存,主要用於處理大量數據的高訪問負載,也用於一些日誌系統等等 | Key指向Value的鍵值對,通常用hash table來實現 | 查找速度快 | 數據無結構化,通常只被當作字符串或者二進制數據 |
列存儲(Column stores) | HBase | 分佈式的文件系統 | 以列簇式存儲,將同一列數據存在一起 | 查找速度快,可擴展性強,更容易進行分佈式擴展 | 功能相對侷限 |
文檔型(Document stores)數據庫 |
MongoDb CouchDB |
Web應用(與Key-Value類似,Value是結構化的,不同的是數據庫能夠了解Value的內容) | Key-Value對應的鍵值對,Value爲結構化數據 | 數據結構要求不嚴格,表結構可變,不需要像關係型數據庫一樣需要預先定義表結構 | 查詢性能不高,而且缺乏統一的查詢語法 |
圖形(Graph)數據庫 | Neo4J | 社交網絡,推薦系統等。專注於構建關係圖譜 | 圖結構 | 利用圖結構相關算法。比如最短路徑尋址,N度關係查找等 | 很多時候需要對整個圖做計算才能得出需要的信息,且這種結構不太好做分佈式的集羣方案 |
不同數據庫應用場景需要參考具體數據庫產品特性,本文根據以往市場使用情況列舉了部分數據庫的典型應用場景。