MongoDB搜索慢查询并优化

项目一直在使用mongodb云数据库,最近发现数据库周期性的隔两天崩一次。客服人员一直告诉我们数据库存在大量的慢查询,一直在积压,所以导致数据库一部分业务表死锁了。
搜索发现,MongoDB的慢查询都村在表文件中。使用db.system.profile可以查询到。

db.system.profile.find({'millis':{$gt:2},'ts':{$gt:new ISODate('2020-06-11 06:35:26.583Z')}}).sort({'millis':-1})

MongoDB搜索慢查询并优化_第1张图片
从表中能看到慢查询的一些信息,我们可以根据这些信息对业务或者sql进行相应的优化。
字段说明:
millis:sql耗时。
ns:表。
query:查询条件。
client:请求客户端IP。

慢查询的优化方式:
所有数据库查询优化基本上都是一样,

  1. 建立索引。
  2. 查询自己用到的字段。
  3. 减少聚合函数。
    总之就是想尽一切办法减少sql扫描的记录数。

你可能感兴趣的:(MongoDB)