數據庫參(can)(can)數是數據庫系統運行的關(guan)鍵配(pei)置信息,設置不合適的參(can)(can)數值可能(neng)會影響(xiang)業務。本文列(lie)舉了一些重要參(can)(can)數說明。更多參(can)(can)數的詳細說明請參(can)(can)見。
如需通過控制臺界面修改參數值,請參見編輯參數模板。
- enableMajorityReadConcern
該參數(shu)(shu)表(biao)示讀取數(shu)(shu)據時,是否需要從大多數(shu)(shu)節點獲取一致(zhi)的數(shu)(shu)據后(hou)才返回結果。
默認值為 “ false ” , 表示讀取(qu)(qu)數(shu)據時,不需要從大(da)多數(shu)節點(dian)獲取(qu)(qu)一致數(shu)據后返(fan)回結果(guo),即從單個節點(dian)上讀取(qu)(qu)數(shu)據就(jiu)可(ke)以返(fan)回結果(guo)。
該參數設為true的時候,表示讀取數據時,需(xu)要(yao)從大多數節(jie)點獲(huo)取一(yi)致數據后才(cai)返回結果。該操作會導致LAS文件過(guo)大,進而(er)造成CPU過(guo)高和磁(ci)盤(pan)占用大。
在(zai)DDS中,不支(zhi)持設(she)置majority級別的(de)readConcern。對于需要(yao)majorityReadConcern的(de)場(chang)景,可(ke)以將WriteConcern設(she)置為majority,表示(shi)數(shu)(shu)(shu)(shu)據寫(xie)入到大(da)多數(shu)(shu)(shu)(shu)節(jie)(jie)點(dian)了,這樣也就(jiu)保證(zheng)了大(da)多數(shu)(shu)(shu)(shu)節(jie)(jie)點(dian)的(de)數(shu)(shu)(shu)(shu)據一(yi)致了。然后通過讀取單個(ge)節(jie)(jie)點(dian)的(de)數(shu)(shu)(shu)(shu)據,就(jiu)能(neng)保證(zheng)用戶(hu)讀到的(de)數(shu)(shu)(shu)(shu)據已經(jing)寫(xie)入到大(da)多數(shu)(shu)(shu)(shu)節(jie)(jie)點(dian),而這樣的(de)數(shu)(shu)(shu)(shu)據不會發生回滾,避免了臟讀的(de)問題。
說明MongoDB可以通過writeConcern來定制寫策略,通過readConcern來定制讀策略。
當指定readConcern級別(bie)為majority時(shi),能(neng)保證用戶讀到的(de)數據(ju)已(yi)經寫入(ru)到大(da)多(duo)數節(jie)點,而這樣的(de)數據(ju)不會發(fa)生回滾,避免了臟讀的(de)問題。
- failIndexKeyTooLong
默認值為 “ true ” 。
該參(can)數不支持修改,避免(mian)過長索(suo)引Key。
- net.maxIncomingConnections
該參數(shu)表示mongos或mongod可接(jie)受的最大同時(shi)連接(jie)數(shu)量。該參數(shu)依賴于實(shi)例的規格,實(shi)例規格不(bu)同對應其(qi)默認值也不(bu)同。因此(ci),此(ci)參數(shu)在(zai)用戶未設置(zhi)前顯(xian)示為“default”,表示該參數(shu)隨內存規格變(bian)化(hua)。
- security.javascriptEnabled
默認值為 “ false ” 。
該參數表(biao)(biao)示(shi)是否允許mongod上(shang)執行JavaScript腳本。為(wei)了(le)安全考慮,默認值為(wei)“false”,表(biao)(biao)示(shi)不允許mongod上(shang)執行JavaScript腳本,mapreduce、group等命令也將(jiang)無法使用。
- disableJavaScriptJIT
默認值為 “ true ” 。
該參(can)數表示是(shi)否禁用JavaScriptJIT編譯技術。JavaScriptJIT編譯技術實現了即(ji)時 (JIT) 編譯以提高運行腳本時的(de)性能(neng)。
“disableJavaScriptJIT”默認值為(wei)“true”,表示禁用JavaScriptJIT編譯技(ji)術。如(ru)果需要(yao)啟用JavaScriptJIT編譯技(ji)術,可(ke)以將“disableJavaScriptJIT”的值設置為(wei)“false”。
- operationProfiling.mode
默認值為 “ slowOp ” 。
該參數表示數據庫(ku)分析器的(de)級別。
該參(can)數支(zhi)持如下取(qu)值:
- 默認值為“slowOp”,表示對于耗時超過慢查詢閾值的操作,采集器采集數據。
- 取值為“off”,表示分析器關閉,不收集任何數據。
- 取值為“all”,表示采集器采集所有操作的數據。
- operationProfiling.slowOpThresholdMs
默認值為 “ 500 ” ,單位為ms。
該參(can)數表示慢查詢的(de)時間(jian)閾值(zhi),單位為毫秒,超過該閾值(zhi)的(de)操作將被認為是慢操作。
如無特(te)殊需求,建議使用(yong)默認(ren)值500ms。
- maxTransactionLockRequestTimeoutMillis
默認值“5”,取值范圍為5~100,單位為ms。
該(gai)參數表示(shi)事(shi)務等(deng)待獲取鎖的(de)時(shi)間,超過該(gai)時(shi)間則事(shi)務回滾。