MongoDB 索引的最佳实践

前言 大部分开发者都知道加索引会快。但实际过程中,我们常碰到一些疑问困难: 我们查询的字段会各种case都有,是不是各个涉及查询的字段都要加索引? 复合索引和单字段怎么选择

    <img src="https://img.mryunwei.com/uploads/2023/04/20230415053502881.jpg"><h3>前言</h3>

大部分开发者都知道加索引会快。但实际过程中,我们常碰到一些疑问&困难:

一、索引究竟是什么东西?

大部分开发者接触索引,大概知道索引类似书的目录,你要找到想要的内容,通过目录找到限定的关键字,进而找到对应的章节的pageno,再找到具体的内容。在数据结构里面,最简单的索引实现类似hashmap,通过关键字key,映射到具体的位置,找到具体的内容。但除了hash的方式,还有多种的方式实现索引。

hashmap

bca2bb3a-4c85-4b43-aba5-6c12f9381a6b.jpg

一图见b-tree & b+-tree 差别:

69ff4243-f3fd-4b9e-93ce-35cf9dd7d775.jpg

二、复合索引