数据库参数是数据库系统运行的关键配置信息,设置不合适的参数值可能会影响业务。本文列举了一些重要参数说明。更多参数的详细说明请参见MongoDB官网。
如需通过控制台界面修改参数值,请参见编辑参数模板。
- enableMajorityReadConcern
该参数表示读取数据时,是否需要从大多数节点获取一致的数据后才返回结果。
默认值为 “ false ” , 表示读取数据时,不需要从大多数节点获取一致数据后返回结果,即从单个节点上读取数据就可以返回结果。
该参数设为true的时候,表示读取数据时,需要从大多数节点获取一致数据后才返回结果。该操作会导致LAS文件过大,进而造成CPU过高和磁盘占用大。
在DDS中,不支持设置majority级别的readConcern。对于需要majorityReadConcern的场景,可以将WriteConcern设置为majority,表示数据写入到大多数节点了,这样也就保证了大多数节点的数据一致了。然后通过读取单个节点的数据,就能保证用户读到的数据已经写入到大多数节点,而这样的数据不会发生回滚,避免了脏读的问题。
说明MongoDB可以通过writeConcern来定制写策略,通过readConcern来定制读策略。
当指定readConcern级别为majority时,能保证用户读到的数据已经写入到大多数节点,而这样的数据不会发生回滚,避免了脏读的问题。
- failIndexKeyTooLong
默认值为 “ true ” 。
该参数不支持修改,避免过长索引Key。
- net.maxIncomingConnections
该参数表示mongos或mongod可接受的最大同时连接数量。该参数依赖于实例的规格,实例规格不同对应其默认值也不同。因此,此参数在用户未设置前显示为“default”,表示该参数随内存规格变化。
- security.javascriptEnabled
默认值为 “ false ” 。
该参数表示是否允许mongod上执行JavaScript脚本。为了安全考虑,默认值为“false”,表示不允许mongod上执行JavaScript脚本,mapreduce、group等命令也将无法使用。
- disableJavaScriptJIT
默认值为 “ true ” 。
该参数表示是否禁用JavaScriptJIT编译技术。JavaScriptJIT编译技术实现了即时 (JIT) 编译以提高运行脚本时的性能。
“disableJavaScriptJIT”默认值为“true”,表示禁用JavaScriptJIT编译技术。如果需要启用JavaScriptJIT编译技术,可以将“disableJavaScriptJIT”的值设置为“false”。
- operationProfiling.mode
默认值为 “ slowOp ” 。
该参数表示数据库分析器的级别。
该参数支持如下取值:
- 默认值为“slowOp”,表示对于耗时超过慢查询阈值的操作,采集器采集数据。
- 取值为“off”,表示分析器关闭,不收集任何数据。
- 取值为“all”,表示采集器采集所有操作的数据。
- operationProfiling.slowOpThresholdMs
默认值为 “ 500 ” ,单位为ms。
该参数表示慢查询的时间阈值,单位为毫秒,超过该阈值的操作将被认为是慢操作。
如无特殊需求,建议使用默认值500ms。
- maxTransactionLockRequestTimeoutMillis
默认值“5”,取值范围为5~100,单位为ms。
该参数表示事务等待获取锁的时间,超过该时间则事务回滚。