為了理解nosql,不仿先看下乙個應用系統資料是怎麼流動的。
資料庫讀取硬碟資料,生成查詢結果,傳送到應用程式變成鍵值對集合,然後程式中讀取這些鍵值對,組裝成相應的序列化物件,再傳輸到客戶端呈現。但很多系統就是直接資料的訪問,並沒有多少複雜的業務邏輯,比如電商系統的商品展示,頁面只要讀取相應的商品資訊就行了,那是不是有什麼辦法,讓資料直接到達客戶端?答案是肯定的,比如微軟提供sql server的odata介面,不過odata還是需要關聯式資料庫支撐的,sql server到了2016版本才支援inmemory,如果不使用inmemory,效能上肯定是沒有太大的變化,只是說多了一層封裝,可以少寫點web服務。另外就是基於nosql的mongodb和ridis之類的,這類產品集合了資料快取的功能,而且原生返回json物件,不需要轉換就可以直接推送到客戶端,這樣就大大提高了程式的效能,和開發效率。
以mongodb為例,看下nosql資料庫提供了哪些功能。
1、crud操作
除了正常的新增刪除,還提供批量寫入,文字搜尋,空間資料查詢。資料的檢索功能,大大降低了應用系統的資料過濾的壓力,同時也確保了資料檢索的準確性。
2、聚合
有管道方式和mapreduce方式進行資料彙總,獲取分組資料。
3、資料結構
提供結構定義,資料檢驗,以保證資料的完整性。
4、事務
資料的完整性,減少資料衝突。
5、索引
增加資料的檢索速度。
6、複製
資料熱備,增強系統的可用性。
7、集群
集群增加了系統的可靠性,可以使用多個伺服器分擔大併發時的系統壓力。
NoSQL架構實踐(一) 以NoSQL為輔
前面 為什麼要使用nosql 和 關聯式資料庫還是nosql資料庫 兩篇從大體上介紹了為什麼要用nosql,何時該用nosql。經常有朋友遇到困惑,看到nosql的介紹,覺得很好,但是卻不知道如何正式用到自己的專案中。很大的原因就是思維固定在mysql中了,他們問得最多的問題就是用了nosql,我如...
NoSQL架構實踐(一) 以NoSQL為輔
摘要 經常有朋友遇到困惑,看到nosql的介紹,覺得很好,但是卻不知道如何正式用到自己的專案中。很大的原因就是思維固定在mysql中了,他們問得最多的問題就是用了nosql,我如何做關係查詢。那 經常有朋友遇到困惑,看到nosql的介紹,覺得很好,但是卻不知道如何正式用到自己的專案中。很大的原因就是...
NoSQL架構實踐(一) 以NoSQL為輔
怎麼樣把nosql引入到我們的系統架構設計中,需要根據我們系統的業務場景來分析,什麼樣型別的資料適合儲存在nosql資料庫中,什麼樣型別的資料必須使用關聯式資料庫儲存。明確引入的nosql資料庫帶給系統的作用,它能解決什麼問題,以及可能帶來的新的問題。下面我們分析幾種常見的nosql架構。不改變原有...