SQL與NoSQL

一,關係數據庫(RDB)

    關係型數據庫作爲傳統的數據庫,支持完整的ACID屬性,其中聲明式的SQL語法屏蔽了底層的實現細節,同時關係數據模型也符合人的正常思維邏輯,因此在各種應用中關係型數據庫都佔據主導位置。常見的RDB數據庫包括Mysql,Oracle,Sql server,PgSql,SQLite,Mysql分支MariaDB等。


關係型數據庫優點多多,但是在現今的互聯網環境下慢慢的暴露出其弊端,包括:

  • 無法存儲數據結構

  • 表結構固定,擴展性差

  • 大數據量下的 I/O 性能差

  • 全文檢索功能弱


二,非關係數據庫(NoSQL)

    NoSQL是說Not Only SQL,非關係型數據庫捨棄了ACID屬性中的一個或多個,因此NoSQL也並非銀彈,只能作爲關係型數據庫的補充,或者適用於特定的業務場景。

    常見的NoSQL包含以下類別,基本上都是爲了補充RDB數據庫的不足而產生:

  • K-V 數據庫:解決了RDB數據庫無法存儲數據結構的弊端,以 Redis 爲代表

  • 文檔數據庫:解決了RDB數據庫表結構擴展性差的問題,以 MongoDB 爲代表

  • 列式數據庫:解決了RDB數據庫在大數據場景下的I/O性能問題,以 HBase 爲代表

  • 全文檢索引擎:補充了RDB數據庫全文檢索能力,以 ES 爲代表


三,分散式存儲系統(DRDB

    留待觀察,官網


四,NoSQL的歷史軌跡

    借用網上的一張圖來說

lkG9Vm8.jpg

現在應該再加上 New SQL 了應該。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章