教你五步優(yōu)化你的MongoDB
下面PPT和視頻的作者是MongoDB的開(kāi)發(fā)工程師Jared Rosoff,他從下面幾個(gè)方面對(duì)MongoDB的幾個(gè)優(yōu)化點(diǎn)進(jìn)行了講解和描述。這些優(yōu)化實(shí)際上也適用于很多其它的數(shù)據(jù)庫(kù)。
1.查詢優(yōu)化
確認(rèn)你的查詢是否充分利用到了索引,用explain命令查看一下查詢執(zhí)行的情況,添加必要的索引,避免掃表操作。
2.搞清你的熱數(shù)據(jù)大小
可能你的數(shù)據(jù)集非常大,但是這并不那么重要,重要的是你的熱數(shù)據(jù)集有多大,你經(jīng)常訪問(wèn)的數(shù)據(jù)有多大(包括經(jīng)常訪問(wèn)的數(shù)據(jù)和所有索引數(shù)據(jù))。使用MongoDB,你最好保證你的熱數(shù)據(jù)在你機(jī)器的內(nèi)存大小之下,保證內(nèi)存能容納所有熱數(shù)據(jù)。
3.選擇正確的文件系統(tǒng)
MongoDB的數(shù)據(jù)文件是采用的預(yù)分配模式,并且在Replication里面,Master和Replica Sets的非Arbiter節(jié)點(diǎn)都是會(huì)預(yù)先創(chuàng)建足夠的空文件用以存儲(chǔ)操作日志。這些文件分配操作在一些文件系統(tǒng)上可能會(huì)非常慢,導(dǎo)致進(jìn)程被Block。所以我們應(yīng)該選擇那些空間分配快速的文件系統(tǒng)。這里的結(jié)論是盡量不要用ext3,用ext4或者xfs。
4.選擇合適的硬盤
這里的選擇包括了對(duì)磁盤RAID的選擇,也包括了磁盤與SSD的對(duì)比選擇。
5.Shard分片
在單個(gè)節(jié)點(diǎn)壓力太大時(shí),我們可以考慮使用MongoDB的auto-sharding機(jī)制來(lái)將數(shù)據(jù)分片到多個(gè)節(jié)點(diǎn)以緩解壓力。
下面就是其視頻和PPT(PPT由NoSQLFan從視頻上截取下來(lái),比較模糊,哪位同學(xué)有高清的可以提供給我們,非常感謝!)
【編輯推薦】