更新时间:2023-11-21 GMT+08:00

索引规范

  • 索引字段的长度不能超过512字节,索引名称长度不能超过64字符,单个复合索引所包含字段数最多不能超过16个。
  • <数据库名>.<集合名>.$<索引名>的总长度不能超过128字符。
  • 在高选择性字段上创建索引,在低选择性字段上查询时会返回较大的结果集,请尽量避免返回较大的结果集。
  • 对集合的写操作同时会操作集合上的索引,从而触发更多的IO操作,集合上的索引数量不要超过32。
  • 不要创建不会被使用到的索引,因为GeminiDB Mongo会加载索引到内存,无用索引加载到内存会浪费内存空间,因业务逻辑变化而产生的无用索引也要及时清理。
  • 索引创建必须使用后台创建索引,禁止前台创建索引。
  • 业务中查询,排序条件的key一定要创建索引,如果建立的是复合索引,索引的字段顺序要和这些关键字后面的字段顺序一致,否则索引不会被使用。
  • 不要基于复合索引的靠前字段再创建索引。复合索引可以被用于一个索引中主要字段的查询。例如,一个基于firstname和lastname的复合索引可以用于在fistname上的查询,这样,基于firstname的索引是不必要的。
  • 索引创建的过程,耗时长短和数据量有关,建议提前设计创索引。
  • 索引创建进度,可以通过db.currentOp命令返回结果(关键字:createIndexes)查看。