跳到主要内容

简述MongoDB索引类型 ?

参考答案:

MongoDB 支持多种索引类型,每种类型都有其特定的用途和优势。以下是 MongoDB 中常见的索引类型及其简述:

  1. 单字段索引 (Single Field Index)

    • 最基本的索引类型,对一个字段的值进行排序。
    • 可以支持高效的查询、排序和更新操作。
    • 例如:db.collection.createIndex({fieldName: 1})
  2. 复合索引 (Compound Index)

    • 在多个字段上建立的索引。
    • 可以用于基于多个字段的查询条件的优化。
    • 复合索引的字段顺序很重要,因为它决定了索引的效率。
    • 例如:db.collection.createIndex({field1: 1, field2: -1})
  3. 多键索引 (Multikey Index)

    • 对于数组字段自动创建的索引。
    • MongoDB 会为数组中的每个元素创建索引条目。
    • 这使得基于数组字段的查询更加高效。
  4. 地理空间索引 (Geospatial Index)

    • 用于地理空间数据的查询。
    • 包括 2dsphere(用于地球表面的地理数据)和 2d(用于平面地理数据)索引。
    • 使得基于地理位置的查询和计算更加高效。
  5. 文本索引 (Text Index)

    • 对字符串内容进行全文搜索。
    • 可以使用 $text$search 操作符进行文本查询。
    • 例如:db.collection.createIndex({fieldName: "text"})
  6. 哈希索引 (Hashed Index)

    • 支持基于哈希值的查询,通常用于分片键。
    • 可以确保数据在分片之间均匀分布。
    • 例如:db.collection.createIndex({fieldName: "hashed"})
  7. 稀疏索引 (Sparse Index)

    • 只包含具有索引字段的文档的条目。
    • 如果文档缺少索引字段,那么该文档将不会包含在索引中。
    • 这可以节省存储空间,并提高某些类型查询的性能。
    • 例如:db.collection.createIndex({fieldName: 1}, {sparse: true})
  8. 唯一索引 (Unique Index)

    • 确保索引字段的值在集合中是唯一的。
    • 这有助于防止数据重复。
    • 例如:db.collection.createIndex({fieldName: 1}, {unique: true})

在使用索引时,需要权衡其带来的性能提升与存储成本的增加。同时,索引的选择和创建应该基于实际的查询模式和数据分布来进行优化。