有什么办法可以知道 MongoDB 表(集合)的索引的创建日期吗?

Ton*_*ony 8 indexing collections date creation mongodb

有什么办法可以知道 MongoDB 表(集合)的索引的创建日期吗?最近看到一些索引导致一些空间和性能的问题,想知道是否可以获取索引的create_date的时间戳。而且我不确定在最新版本的 mongodb 中是否有办法做到这一点。如果不是这样,是否有任何解决方法可以做到这一点?非常感谢。

Ram*_*tal 1

检查数据库rs.oplog中的集合local

db.oplog.rs.find({ "o.createIndexes": { "$exists": true } }).sort({ts: -1})
Run Code Online (Sandbox Code Playgroud)

示例响应:(当在数据库中的集合unique_email上创建具有名称的索引时。userstest

{ op: 'c',
  ns: 'test.$cmd',
  ui: UUID("47041281-c7d2-4d28-90ef-2baa49c6c31f"),
  o: 
   { createIndexes: 'users',
     v: 2,
     unique: true,
     key: { email: 1 },
     name: 'unique_email',
     background: false },
  ts: Timestamp({ t: 1659682522, i: 2 }),
  t: 62,
  v: 2,
  wall: 2022-08-05T06:55:22.326Z }
Run Code Online (Sandbox Code Playgroud)

注意事项

oplog保留在oplog集合大小和执行操作的时间长短方面都受到限制。您可以在官方文档中阅读有关这些参数的更多信息。所有写操作都记录在 中,包括索引创建,但如果索引是最近创建的,oplog您更有可能找到该条目。 因此,该方法仅在某些情况下有效。oplog