MySQL MongoDB Redis區別與介紹

2021-09-05 10:51:42 字數 1052 閱讀 8951

1)mysql介紹

mysql是關係型資料庫:

1)mongodb介紹

mongodb是乙個基於分布式檔案儲存的開源資料庫系統,mongodb 將資料儲存為乙個文件,資料結構由鍵值(key=>value)對組成。mongodb 文件類似於 json 物件。字段值可以包含其他文件,陣列及文件陣列。mongodb的資料索引是b-樹。

2)mongodb的特點

優點:

缺點

適用場景:

1)redis介紹

redis是一種記憶體資料庫,所有的資料都是放在記憶體之中,定期寫入磁碟中,當記憶體不夠的時候,可選擇指定的lru演算法刪除資料。redis是基於雜湊字典建立的,因此其索引方式是雜湊。

特點:

集群:

mongodb 集群技術比較成熟,redis從3.0開始支援集群。

當物理記憶體夠用的時候,redis>mongodb>mysql

當物理記憶體不夠用的時候,redis和mongodb都會使用虛擬記憶體。

實際上如果redis要開始虛擬記憶體,那很明顯要麼加記憶體條,要麼你換個資料庫了。

但是,mongodb不一樣,只要,業務上能保證,冷熱資料的讀寫比,使得熱資料在物理記憶體中,mmap的交換較少。

mongodb還是能夠保證效能。有人使用mongodb儲存了上t的資料。

mysql,mysql根本就不需要擔心資料量跟記憶體下的關係。不過,記憶體的量跟熱資料的關係會極大地影響效能表現。

當物理記憶體和虛擬記憶體都不夠用的時候,估計除了mysql你沒什麼好選擇了。

其實,從資料儲存原理來看,我更傾向於將mongodb歸類為硬碟資料庫,但是使用了mmap作為加速的手段而已。

1 介紹與安裝

go 亦稱為 golang.golang 的主要關注點是使得高可用性和可擴充套件性的 web 應用的開發變得簡便容易。go 的定位是系統程式語言,只是對 web 開發支援較好 既然有很多其他程式語言可以做同樣的工作,如 python,ruby,nodejs 等,為什麼要選擇 golang 作為服務端...

MYSQL IN 與 EXISTS 的優化示例介紹

當b表的資料集必須小於a表的資料集時,用in優於exists,當a表的資料集系小於b表的資料集時,用exists優於in 優化原則 小表驅動大表,即小的資料集驅動大的資料集。原理 rbo select from a where id in select id from b 等價於 for selec...

python與歷史專業 Python簡史介紹

老男孩教育的python自動化開發課程自2013年第1期到現在已經走到了第12期,2年半的時間裡,我們每一期都在對課程細節進行不同程度的優化,課程總時長也從最開始的2個月延長至第12期的五到六月,更新內容足足翻了一倍多,我們培養出來的幾百名學員目前已活躍在各大網際網路公司的自動化崗位上。然而我們也希...