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