MySQL、MongoDB、Redis介紹與區(qū)別

關(guān)系型數(shù)據(jù)庫: MySQL

關(guān)系型數(shù)據(jù)庫是一種基于關(guān)系的數(shù)據(jù)庫,而關(guān)系模型可通過二維表來進(jìn)行表示,所以數(shù)據(jù)的存儲方式是由行列組成的表,每一列是一個字段,每一行是一個記錄。在關(guān)系型數(shù)據(jù)庫中通常包含了三個概念:數(shù)據(jù)庫(database)、表(table)、記錄(record)。在大部分關(guān)系型數(shù)據(jù)庫中,都是適用B+樹作為索引,比如MySQL。

  • MySQL也是一種硬盤型數(shù)據(jù)庫,它所有的數(shù)據(jù)都是存放在硬盤中,需要使用的時候才會交換到內(nèi)存中。因此MySQL能夠處理海量的數(shù)據(jù),但是數(shù)據(jù)量很大的時,速度會稍慢。
  • MySQL的使用需要提前建表,不適用于數(shù)據(jù)結(jié)構(gòu)變換頻繁的情況

非關(guān)系型數(shù)據(jù)庫:MongoDB、Redis

MongoDB介紹

MongoDB是由c++語言編寫的非關(guān)系型數(shù)據(jù)庫,是一個基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng),其內(nèi)容存儲類似JSON對象,它的字段可以包含其他的文檔、數(shù)組以及文檔數(shù)組。MongoDB包含了三個層次概念:數(shù)據(jù)庫(database)、集合(collection)、文檔(document)。MongoDB的數(shù)據(jù)索引是B-樹。

  • MongoDB 在創(chuàng)建數(shù)據(jù)庫的時候,會直接在磁盤上面分配一組數(shù)據(jù)文件,所有的集合、索引和數(shù)據(jù)庫的其他元數(shù)據(jù)都保存在這些文件中。

  • 在使用MongoDB中,操作系統(tǒng)會通過mmap將進(jìn)程所需要的所有數(shù)據(jù)都映射到虛擬內(nèi)存中,然后在將當(dāng)前需要處理的數(shù)據(jù)映射到內(nèi)存中。當(dāng)需要訪問的數(shù)據(jù)不在虛擬內(nèi)存的時候,會觸發(fā)page fault,然后os就會硬盤中的數(shù)據(jù)加載到虛擬內(nèi)存和內(nèi)存中。而當(dāng)內(nèi)存已滿時,會觸發(fā)swap-out操作,將一些數(shù)據(jù)寫回硬盤。所以有了這種內(nèi)存映射文件的方法,就會有種好像所有需要訪問的數(shù)據(jù)都在內(nèi)存里一樣。

  • MongoDB的特點:

    • 提供面向文檔存儲,操作簡單
    • 擴(kuò)展性強,第三方支持豐富
    • 具有failover機(jī)制(失效轉(zhuǎn)移:一種備份操作模式,當(dāng)一個系統(tǒng)因為一些故障無法完成工作的時候,另一個系統(tǒng)自動接替已失效系統(tǒng)的工作繼續(xù)執(zhí)行)
    • 支持大容量存儲,內(nèi)置GridFS(可用于存放大量的小文件)
    • 在高負(fù)載的情況下,可以添加更多的節(jié)點,保證服務(wù)器性能
  • 缺點

    • 無事務(wù)機(jī)制(數(shù)據(jù)庫事務(wù)(database transaction)對單個的邏輯單元執(zhí)行一系列的操作,要么完全執(zhí)行,要么完全不執(zhí)行)
    • 占用空間過大
    • 沒有mysql那樣成熟的維護(hù)工具
  • 適用場景

    • 適合那種數(shù)據(jù)格式不明確
      或者經(jīng)常變化的模型,比如事件記錄、內(nèi)容管理或者博客平臺。
Redis

Redis是一種內(nèi)存數(shù)據(jù)庫,所有的數(shù)據(jù)都是放在內(nèi)存之中,定期寫入磁盤中,當(dāng)內(nèi)存不夠的時候,可選擇指定的LRU算法刪除數(shù)據(jù)。Redis是基于哈希字典建立的,因此其索引方式是哈希。

  • 特點

    • 由于數(shù)據(jù)存放在內(nèi)存中,因此讀寫性能高
    • 支持豐富的數(shù)據(jù)類型,如鍵值對、集合、列表、散列存儲
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容