[本文只是本身當前對此塊知識的理解,可能理解有誤,歡迎指正,不喜勿噴]
隨着互聯網時代的高速發展,傳統模式、工具沒法知足市場需求,即傳統的關係型數據庫在解決大規模數據集合併發需求的時候力不從心,短板日漸突出。sql
當大量用戶訪問服務的時候,最容易致使服務崩潰的地方是和磁盤數據交互的地方
cpu的數據交互是和高速緩存作(Cache);
cache的數據交互是和內存;
內存的數據的交互是和硬盤;數據庫
當服務和磁盤作數據操做的時候會產生大量的io交互,這樣程序的高可用、高併發都會受到必定限制,因此就會有誕生一些理念:緩存、索引等,目的下降io成本的緩存
NoSQL(NoSQL = Not Only SQL ),意即「不單單是SQL」,是非關係型數據的泛指,個人理解就是非關係型數據庫的一個較爲高大上的叫法併發
MongDB、 Redis、Memcachenosql
Redis/Memcache: 鍵值數據庫 MongDB:面向文檔(日誌、分析)
關係數據庫的設計上:
更注重三範式、設置主鍵、外鍵、以及聯合主鍵,這樣會使得數據的查詢效率下降,數據關係呈現網狀,目前有不少公司都數據庫設計去除外鍵和聯合主鍵,只保留主鍵,更多的操做都轉移至代碼裏面處理,能夠加快查詢速度,可是這種操做仍是對數據處理有限。
數據存儲:線性存儲。數據庫設計
非關係數據庫:
數據存儲:實質就是一個map,鍵值存儲和文檔存儲。高併發