本文共 1311 字,大约阅读时间需要 4 分钟。
MongoDB 支持多种索引类型,每种类型适用于不同的场景。以下是常见的索引类型及其应用场景:
在单个字段上创建的索引。这种索引适用于经常需要按单个字段查询的场景,能够显著提升查找效率。
在多个字段上创建的索引,支持按多个字段排序。复合索引可以提高复杂查询的效率,但需要权衡索引大小和查询性能。
确保字段或字段组合的唯一性。唯一索引用于防止数据重复,并且在处理唯一值查询时可以提供额外优化。
用于全文搜索的索引,能够快速定位文本内容中的关键词或短语。适用于需要全文检索的应用场景。
用于处理地理坐标数据的查询,如附近搜索(Geospatial Queries)。这种索引能够快速定位地理位置相关的数据。
在支持 $in 或 $nin 查询的场景下,哈希索引可以显著提升查询性能。
当字段包含数组时,多键索引会为数组中的每个元素创建索引项,支持按数组元素查询。
不会为未定义的字段创建索引项。这种索引类型适用于动态字段场景,减少了索引占用的空间。
专门用于文本搜索和分析。文本索引能够支持文本片段的快速匹配。
索引包含了查询中所有涉及的字段,能够直接从索引中获取数据,减少回表查询的次数。
创建索引使用 createIndex 方法。以下是几种常见的索引创建方式:
单字段索引:
db.collection.createIndex({ name: 1 });这里 1 表示按升序排序。
复合索引:
db.collection.createIndex({ name: 1, age: -1 });1 表示 name 字段升序排序,-1 表示 age 字段降序排序。
可以使用 getIndexes 或 listIndexes 方法查看集合中的所有索引:
db.collection.getIndexes();
删除索引使用 dropIndex 方法:
db.collection.dropIndex('name_1'); 记住,索引设计应基于应用程序的具体需求和查询模式。过度索引可能导致性能开销过大,而不足的索引则可能导致查询效率低下。
转载地址:http://diffk.baihongyu.com/