NoSQL

NoSQL

是什麼

  • Not Only SQL
  • 泛指非關係型數據庫

爲什麼會出現

  • 關係數據庫存在的缺點
    1. 關係數據庫存儲的是行數據,無法存儲數據結構
    2. 關係數據庫的schema擴展不方便(schema:數據庫對象,包括表、視圖、索引、存儲過程等)
    3. 關係數據庫讀取時會將同一行數據一次讀出,造成I/O高
    4. 關係數據庫的全文搜索功能比較弱,like的整表掃描,性能不能滿足複雜業務下的需求
  • NoSQL的優勢
    1. 易擴展
    2. 大數據量、高性能、高可用
    3. 靈活的數據模型

常見的NoSQL

  • K-V存儲:解決關係數據庫只能存儲行數據,無法存儲數據結構的問題
    • 如Redis
  • 文檔存儲:解決關係數據庫中強schema的問題
    • 如MongoDB
  • 列式存儲:解決關係數據庫中I/O高的問題
    • 如HBase
  • 【全文搜索】新方式
    • 如ES(ElasticSearch)

NoSQL細節

NoSQL模式 技術代表 關鍵點 不足
K-V存儲 Redis Key-Value存儲,Key是數據的標識,Value是具體的數據;Redis的Value數據結構可以是string、hash、list、set、sorted set、bitmap和hyperloglog Redis的事務只能保證一致性和獨立性,不能保證原子性持久性,即不能滿足ACID(原子性、一致性、獨立性、持久性)
文檔存儲 MongoDB 特點no-schema,採用JSON或BSON格式(加強版的JSON,可以存儲ByteArray數據),屬性及屬性的類型增刪改非常的靈活 不支持事務;不支持join
列式存儲 HBase 離線大數據分析或統計的場景中;壓縮率高,節約空間,節省I/O 更新列效率低--操作不連續的空間和更新壓縮的數據需要先解壓進行修改
全文搜索 ES 倒排索引--建立單詞到文檔的索引(即根據關鍵詞搜索所在的所有文檔)  
發佈了264 篇原創文章 · 獲贊 133 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章