慢查询配置
在Mongodb中,慢查询可以通过设置慢查询阈值的方式来获取慢SQL,同时输出语句执行时的执行计划。设置慢查询阈值的方法有两种,一种是通过operationProfiling参数设置,包括mode:slowOp和slowOpThresholdMs,表示抓取执行时间超过一定毫秒数的慢查询;另一种是在实例启动后,在数据库层动态的设置慢查询阈值db.setProfilingLevel(n,{slowms: m})。设置之后,在当前数据库中会产生一个名为system.profile的集合,使用showprofile可以显示最近的5条慢查询记录以及语句的执行计划。

语句执行计划
在大多数数据库中,都可以使用explain查看语句的执行计划,Mongodb也不例外。其用法为db.collectionname.find({field_name:***}).explain(),同时也支持不同类型的explain模式,包括queryPlanner、executionStats和allPlansExecution。同时,Mongodb的执行计划包括全表扫描(COLLSCAN)、索引扫描(IXSCAN)、分片合并(SHARD_MERGE)和_ID过滤(IDHACK),其中IDHACK是最优的执行计划。
作为一个数据库的优化方法,Mongodb的慢查询优化和语句执行计划的分析都非常重要,开发者可以通过以上方法来提升数据库的性能。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5923.html
