NoSQL最常見的解釋是non-relational,或者not only SQL,從欄位意思上就可以看出,它是指非關係型資料庫的統稱。 NoSQL誕生的背景 隨著大型網站分散式架構的發展,使用傳統關係型資料庫在以下幾個方面顯得力不從心: 1,對資料庫高併發讀寫 隨著分散式架構和微服務的流行,資料庫 ...
NoSQL最常見的解釋是non-relational,或者not only SQL,從欄位意思上就可以看出,它是指非關係型資料庫的統稱。
NoSQL誕生的背景
隨著大型網站分散式架構的發展,使用傳統關係型資料庫在以下幾個方面顯得力不從心:
1,對資料庫高併發讀寫
隨著分散式架構和微服務的流行,資料庫的負載非常高,如果是1w+/s的查詢需求還勉強頂得住,但是對於1w+/s的寫操作,關係型資料庫的性能就非常低。
2,海量數據的存儲和查詢
當每天產生上億條的數據,對於關係型資料庫來說,在一張上億條記錄的數據表裡查詢,性能是非常低的。
3,高擴展性和高可用性
對於關係型資料庫來說,升級和擴展非常困難。
NoSQL的出現,正是解決上面這幾個問題的。
NoSQL的分類
NoSQL共有四類:key/value資料庫,文檔型資料庫,列存儲資料庫和圖資料庫。在項目中最常用的還是以Memcached和redis為代表的key/value資料庫,和MongoDb為代表的文檔型資料庫。
key/value資料庫代表:Memcached和Redis。
文檔型資料庫代表:MongoDb。
NoSQL的優勢
既然NoSQL是彌補關係型資料庫的不足的,所以它的的優勢就非常明顯:
1,處理海量數據。
2,易擴展,由於它的非關係性。
3,高可用,比如redis可以組成集群,提供7*24小時服務。
那麼,NoSQL是不是就沒有缺點了呢?不是的,比如它沒有關係型數據的事務。
總結
1,NoSQL並不能代替關係型資料庫,只能說用來彌補關係型資料庫的不足,核心的業務還是得使用關係型資料庫,由於它的ACID特性。
2,對於大數據的處理,可以研究更好的框架ES(ElasticSearch)。