mongodb索引加错了有啥影响
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb索引加错了有啥影响相关的知识,希望对你有一定的参考价值。
参考技术A 在建索引时遇到这个问题,估计是索引文件有问题,而且只有一个集合会出现这样报错。MongoDB是基于集合建立索引(Index),索引的作用类似与传统关系型数据库,目的是为了提高查询速度。如果没有建立索引,MongoDB在读取数据时必须扫描集合中的所有文档记录。这种全集合扫描效率是非常低的,尤其在处理大数据时,查询可能需要花费几十秒到几分钟的时间。当建立索引后,查询将扫描索引内容,而不会去扫描对应的集合。
但在建立索引的同时,是需要增加额外存储开销的。在已经建立索引的情况下,若新插入了集合文档记录,则会引起索引重排序,这个过程会影响查询速度。MongoDB的索引基于B-tree数据结果及对应算法形成。
MongoDB索引
参考技术A 对普通字段创建索引对内嵌的文档字段创建索引
复合索引的字段顺序、字段的升降序对查询性能有影响,
也叫多值索引,
数组索引必然会使索引的条目和体积发生膨胀。为了避免时空,有必要在文档设计上做出一些限制。
MongoDB不支持一个复合索引中同时出现多个数组字段。
专门用于实现位置检索的一种特殊索引。
例如:
location字段是一个内嵌型文档,用于表明商家的地理位置,其中type表示这是地图上的一个点,coordinates则是经纬度。
接下来创建一个2dsphere索引,如下:
最后,执行查询,检索附件5千米内的商家,如下:
例如
对于制定字段已经存在重复记录的集合,尝试创建唯一性索引会报错。
对于老化数据的处理,MongoDB提供了便捷的做法,TTL索引,通过声明一个日期类型的字段,然后在日期字段上加上TTL索引:
创建TTL索引后,该数据会在3600秒后过期,MongoDB会周期性运行后台线程中对该集合进行检查及数据清理工作。
以上是关于mongodb索引加错了有啥影响的主要内容,如果未能解决你的问题,请参考以下文章