面试题答案
一键面试开启查询日志记录
- 在配置文件中开启:
- 打开MongoDB的配置文件(通常为
mongod.conf
)。 - 添加或修改以下配置项:
systemLog: destination: file path: /var/log/mongodb/mongod.log logAppend: true verbosity: 2 # 可根据需要调整日志详细程度,2表示普通详细程度 traceAllExceptions: true # 捕获所有异常
- 重启MongoDB服务使配置生效。
- 打开MongoDB的配置文件(通常为
- 在命令行中开启:
- 启动
mongod
时使用--logpath
和--verbosity
选项,例如:
mongod --logpath /var/log/mongodb/mongod.log --verbosity 2
- 启动
查询日志关键信息
- 查询语句:完整的查询语句,这有助于确定具体执行的操作,例如
db.collection.find({field: value})
。通过分析查询语句的结构和条件,可以发现是否存在低效的查询条件,如全表扫描等情况。 - 执行时间:记录查询执行所花费的时间,以毫秒为单位。这是衡量查询性能的重要指标,较长的执行时间可能表示查询需要优化,例如缺少索引导致查询缓慢。
- 查询类型:例如
find
、aggregate
等操作类型。不同类型的查询操作有不同的优化方式,了解查询类型有助于针对性地进行性能分析。 - 集合名称:表明查询操作作用在哪个集合上,通过集合的大小、数据量以及索引情况等信息,进一步分析查询性能。
- 索引使用情况:显示查询是否使用了索引,以及使用了哪些索引。如果查询没有使用索引,可能导致全表扫描,大大降低查询效率,这时候就需要考虑添加合适的索引。
- 返回文档数量:了解查询返回的数据量大小,大量的数据返回可能会增加网络传输和处理时间,也是影响性能的因素之一。