您好,登錄后才能下訂單哦!
公司業(yè)務(wù)調(diào)整,把一部分?jǐn)?shù)據(jù)由Redis轉(zhuǎn)至MongoDB,業(yè)務(wù)在測試環(huán)境正常,生產(chǎn)環(huán)境上線后發(fā)現(xiàn)壓力一上來MongoDB的服務(wù)直接把CPU占滿了,和開發(fā)的同學(xué)分析了一下也參考了一下百度上類似的問題,最后定位原因:未使用索引。
解決方法很簡單:對應(yīng)的關(guān)鍵字段創(chuàng)建索引即可。
參考命令如下:
>use Data; #進入數(shù)據(jù)庫Data,注意區(qū)分大小寫;
>db.stats(); #查看數(shù)據(jù)庫的狀態(tài);
>db.getCollectionNames(); #查看所有表名;
>db.dynamic.find().limit(5); #查看dynamic表的前5條數(shù)據(jù);
>db.dynamic.find().count(); #統(tǒng)計dynamic表總共有多少數(shù)據(jù);
>db.dynamic.getIndexes(); #查詢表dynamic的索引
#新建索引:對dynamic的score字段以backgroud方式建立索引
>db.dynamic.ensureIndex({score:1} , {backgroud:true});
#狀態(tài)查看:20秒,每秒更新一次
mongostat -h 80.81.2.3 -p 27017 --rowcount 20 1
開始創(chuàng)建索引的字段沒找準(zhǔn),效果不明顯,后來對關(guān)鍵字段創(chuàng)建索引后CPU使用率斷崖式下跌
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。