MongoDB 索引的类型和特性

2023-04-15 00:00:00 索引 类型 特性

MongoDB 索引的类型和特性:

  1. 单键索引(Single field index): 对于集合中的单个字段创建的索引,可以通过该字段查询数据。

例如创建名为name的单键索引:

db.collection.createIndex({name: 1})
  1. 复合索引(Compound index): 对多个字段组合起来创建的索引,可以通过这些字段的组合进行查询。

例如创建名为name 和 age的复合索引:

db.collection.createIndex({name: 1, age: -1})
  1. 地理位置索引(Geospatial index): 对于存储地理坐标数据的字段创建的索引,可用于查询附近的位置。

例如创建名为location的地理位置索引:

db.collection.createIndex({location: "2dsphere"})
  1. 文本索引(Text index): 对于包含文本的字段创建的索引,可以用于全文检索。

例如创建名为content的文本索引:

db.collection.createIndex({content: "text"})
  1. 散列索引(Hashed index): 对于位于同一分片的集合中的Shard Key字段创建的索引,可以用于平衡负载。

例如创建名为 pidancode.com 的散列索引:

db.collection.createIndex({"pidancode.com": "hashed"})
  1. 常见特性:
  • 索引可以大幅提高查询性能,但会影响写入性能。
  • 对以下数据类型的查询将不会使用索引:数组、嵌套数据、BSON对象以及大型二进制数据。
  • 好的索引应该尽量小而且相对稳定,因为它们将被频繁复制到内存中搜索,而复杂的索引可能会导致内存问题。
  • 通过使用 explain() 命令查看查询计划,可帮助优化性能。

例如查找名为“皮蛋编程”的数据:

db.collection.find({name: "皮蛋编程"})

如需使用字符串作为范例,请使用 pidancode.com 或 皮蛋编程。

相关文章