mysql redis mongodb效能比較

2021-10-11 15:26:22 字數 748 閱讀 2486

(1)redis所有資料都是放在記憶體中的,持久化是使用rdb方式或者aof方式。

(2)mongodb的所有資料實際上是存放在硬碟的,所有要操作的資料通過mmap的方式對映到記憶體某個區域內。然後,mongodb就在這塊區域裡面進行資料修改,避免了零碎的硬碟操作。至於mmap上的內容flush到硬碟就是作業系統的事情了,所以,如果mongodb在記憶體中修改了資料,然後,mmap資料flush到硬碟之前,系統宕機了,就會丟失資料。

(3)mysql無論資料還是索引都存放在硬碟中。到要使用的時候才交換到記憶體中。並且能夠處理遠超過記憶體總量的資料。

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

mysql墊底是肯定的。至於,redis為什麼比mongodb快,跟場景和使用業務有關係。大部分情景下,由於mongodb要兼顧它特有的弱表結構下複雜的查詢,在很多訪問過程上做了妥協。

(2)當物理記憶體不夠用的時候,redis和mongodb都會使用虛擬記憶體。實際上如果redis要開始虛擬記憶體,那很明顯要麼加記憶體條,要麼你換個資料庫了。但是,mongodb不一樣,只要業務上能保證冷熱資料的讀寫比,使得熱資料在物理記憶體中,mmap的交換較少。mongodb還是能夠保證效能。有人使用mongodb儲存了上t的資料。而mysql根本就不需要擔心資料量跟記憶體之間的關係。不過,記憶體的量跟熱資料的關係會極大地影響效能表現。

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

Mysql count 的多種使用方式效能比較

mysql的count函式用於統計符合條件的記錄數,常用的方式有 1 count 2 count 1 3 count id 4 count col 首先需要明確一點 count函式對於返回的結果集,一行行地判斷,不會統計null值。初學者經常會糾結到底應該使用哪種方式做計數,實際上這四種計數方式是有...

搭建效能比squid高很多的varnish伺服器

varnish是一款高效能的開源http加速器,挪威最大的 使用3臺varnish代替了原來的12臺squid,效能比以前更好。varnish的作者poul henning kamp是freebsd的核心開發者之一,他認為現在的計算機比起1975年已經複雜許多。在1975年時,儲存媒介只有兩種 記憶...

為什麼NIO的效能比IO好

1.io是面向流的,也就是讀取資料的時候是從流上逐個讀取,所以資料不能進行整體以為,沒有緩衝區 nio是面向緩衝區的,資料是儲存在緩衝區中,讀取資料是在緩衝區中進行,所以進行資料的偏移操作更加方便 2,io是阻塞的,當乙個執行緒操作io時如果當前沒有資料可讀,那麼執行緒阻塞,nio由於是對通道操作i...