MST

星途 面试题库

面试题:MongoDB中索引的类型及适用场景

请列举MongoDB常见的索引类型,并阐述每种索引类型在实际业务场景中的适用情况。
25.3万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试

单字段索引

  • 适用场景:当查询条件主要基于单个字段进行过滤时,单字段索引非常有效。例如在用户表中,经常根据用户ID查询用户信息,为用户ID字段创建单字段索引可以显著提高查询效率。在电商系统中,依据商品ID查询商品详情,对商品ID创建单字段索引能加快查询速度。

复合索引

  • 适用场景:适用于需要基于多个字段进行查询的场景。例如在订单表中,经常需要根据用户ID和订单状态查询订单,为用户ID和订单状态创建复合索引,能提升这类查询的性能。在日志表中,若频繁根据时间范围和日志级别查询日志记录,对时间字段和日志级别字段创建复合索引可优化查询。

多键索引

  • 适用场景:用于对数组类型的字段建立索引。比如在一个博客系统中,文章可能有多个标签(存储为数组形式),为标签字段创建多键索引后,可高效地查询包含特定标签的文章。在社交系统中,用户的兴趣爱好以数组存储,通过多键索引能快速查找有特定兴趣爱好的用户。

文本索引

  • 适用场景:主要用于全文搜索场景。如新闻网站的文章搜索,文章内容包含大量文本,创建文本索引后,用户输入关键词能在文章内容中进行全文匹配搜索,找到相关新闻。在文档管理系统中,对文档内容建立文本索引,便于根据关键词搜索文档。

地理位置索引

  • 适用场景:适用于与地理位置相关的查询。如外卖平台,根据用户位置查找附近的餐厅,对餐厅的地理位置字段建立地理位置索引,可快速计算并返回距离用户最近的餐厅列表。在打车软件中,依据乘客位置匹配附近的司机,地理位置索引有助于高效实现这一功能。