返回顶部
首页 > 资讯 > 数据库 >MongoDB索引(7)
  • 199
分享到

MongoDB索引(7)

MongoDB索引(7) 2021-11-24 16:11:19 199人浏览 猪猪侠
摘要

索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得 更快。mongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询优化技巧。 增加检索的效率. monGodb提供了索引的支持.(

MongoDB索引(7)

索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得 更快。mongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询优化技巧。

增加检索的效率. monGodb提供了索引的支持.(越来越倾向于关系型数据库)

通常建立索引的, 基本要求, 就是文档的结构要尽可能一致.

普通单列索引

语法:

db.集合名.ensureIndex({键名:1}) # 1是升序 -1是降序

测试代码:

for(var i = 0; i < 200000; i++) {
    db.golang.insert({name:"bashlog"+i, age:i})
}

第一:先检验一下查询性能

var start = new Date()
db.golang.find({name:"bashlog187654"})
var end = new Date()
end - start

第二:为name创建索引

db.golang.ensureIndex({name:1})

第三:再执行第一部分的查询代码可以看出有数量级的性能提升

多列索引(复合索引)

语法:

db.集合名.ensureIndex({field1:1/-1, field2:1/-1})

对name和age建立复合索引

可以使用getIndexes()查看索引的创建情况

该索引被创建后,基于 username 和 age 的查询将会用到该索引,或者是基于 username 的查询也会用到该索引,但是只是基于 age 的查询将不会用到该复合索引。因此可以说, 如果想用到复合索引,必须在查询条件中包含复合索引中的前 N 个索引列。

子文档索引

语法:

db.集合名.ensureIndex({field.subfield:1/-1})

示例:

有如下结构的文档

{name:"诺基亚手机1", price:12.34, desc:{weight:100, area:"lundon"}}
{name:"诺基亚手机2", price:43.21, desc:{weight:200, area:"newYork"}}

要查询weight等于100的文档

db.goods.find({"desc.weight":100})

根据当前示例,我们建立子文档

db.集合名.ensureIndex({"desc.weight":1})

唯一索引

当给某个列添加了唯一索引后,那么这一列的数据就必须是唯一的,如果添加重复数据就回到值报错

语法:

db.集合名.ensureIndex({name:-1},{unique:true})

查看索引

常用命令:

(1)查看当前索引状态:

db.集合名.getIndexes()

(2)详情查看本次查询使用哪个索引和查询数据的状态信息。

explain("executionStats")

有索引时,查询时间

删除索引时查询时间

删除索引

删除单个索引

语法:

db.集合名.dropIndex({field:1/-1})

删除所有索引

语法:

db.集合名.dropIndexes()

注意:在删除所有的索引是,逐渐索引会保留。

重建索引

一个表经过多次修改后,导致表的文件产生空洞,所以文件也是如此。可以通过索引的重建,减少索引文件片,并提高索引的效率。

类似Mysql的optimize table 表名

语法:

db.集合名.reIndex()

索引使用注意事项

(1)创建索引的时候,注意1是正序创建索引 -1是倒序创建索引

(2)索引的创建在提高查询性能的同时会影响插入性能,对于经常查询少插入的文档可以考虑用索引

(3)复合索引要注意索引的先后顺序。

(4)每个键全建立索引不一定就能提高性能,索引不是万能的。

(5)在做排序工作的时候如果是超大数据量也可以考虑加上索引用来提高排序的性能。

您可能感兴趣的文档:

--结束END--

本文标题: MongoDB索引(7)

本文链接: https://lsjlt.com/news/7474.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MongoDB索引(7)
    索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得 更快。MongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询优化技巧。 增加检索的效率. mongodb提供了索引的支持.(...
    99+
    2021-11-24
    MongoDB索引(7)
  • MongoDB实战(7)索引与性能
    一、索引MongoDB提供了多样性的索引支持索引信息被保存在system.indexes中且默认总是为_id创建索引。1、基础索引在字段age上创建索引1(升序);-1(降序)上例显示出来的一共有2个索引其...
    99+
    2024-04-02
  • mongodb索引
    索引的原理当往某各个集合插入多个文档后,每个文档在经过底层的存储引擎持久化后,会有一个位置信息,通过这个位置信息,就能从存储引擎里读出该文档 MMAPv1:文件id+文件内offset WiredTiger...
    99+
    2024-04-02
  • MongoDB之索引(全文索引)
    在一些信息管理平台上经常需要进行信息模糊查询,最早的时候是在某个字段上实现的模糊查询,但是这个时候返回的信息并不会很准确,因为只能够查A字段或者是B字段,而在MongoDB里面实现了非常简单的全文检索。 ...
    99+
    2024-04-02
  • MongoDB(八):索引
    1. 索引 索引支持查询的有效地提高效率。没有索引,MongoDB必须扫描集合的每个文档,以选择与查询语句匹配的文档。这种扫描效率很低,需要MongoDB处理大量的数据。 索引是特殊的数据结构,以易于遍历的形式存储数据集的一小部分。 索引存...
    99+
    2017-05-14
    MongoDB(八):索引
  • MongoDB的索引
    1、简介它就像是一本书的目录,如果没有它,我们就需要对整个书籍进行查找来获取需要的结果,即所说的全盘扫描;而有了目录(索引)之后就可以通过它帮我们定位到目标所在的位置,快速的获取我们想要的结果。2、演示第一...
    99+
    2024-04-02
  • [MongoDB] Index 索引
    ...
    99+
    2024-04-02
  • mongodb 索引相关
    1.索引的相关介绍:monggodb的索引也是一颗平衡二叉树,所以在传统数据库中的绝大部分的索引优化技术也是可用的.注意:mongodb可以在任意方向上对数据进行遍历(这点和关系数据库中的索引不一样),但这...
    99+
    2024-04-02
  • MySQL(7)-mysql索引和存储引擎
         本篇博客讲的是MySQL的索引的功能和使用 , 以及存储引擎的基本简介 一. mysql索引索引的简介和作用索引在MySQL中叫做"键" , 是存储引擎用于快速找到记录的一种数据结构 . 索引对良...
    99+
    2024-04-02
  • MongoDB笔记九——索引
    制造数据...
    99+
    2024-04-02
  • 【Elasticsearch 7 探索之路】(三)倒排索引
    上一篇,我们介绍了 ES 文档的基本 CURE 和批量操作。我们都知道倒排索引是搜索引擎非常重要的一种数据结构,什么是倒排索引,倒排索引的原理是什么。 1 索引过程 在讲解倒排索引前,我们先了解索引创建,下图是 Elasticsearch ...
    99+
    2019-11-04
    【Elasticsearch 7 探索之路】(三)倒排索引
  • mongodb建索引引起的问题
    建索引就是一个容易引起长时间写锁的问题,MongoDB 在前台建索引时需要占用一个写锁(而且不会临时放弃),如果集合的数据量很大,建索引通常要花比较长时间,特别容易引起问题。 解决的方法很简单,M...
    99+
    2024-04-02
  • 【MongoDB学习笔记20】MongoDB的索引
    MongoDB的索引和关系型数据库的索引概念和功能是相同的:(1)不使用索引的搜索可以称为全表扫面,也就是说,服务器必须找完整个表才能查询整个结果;(2)建立索引后搜索,查询在索引中搜索,在索引的条目中找到...
    99+
    2024-04-02
  • 【MongoDB】03、MongoDB索引及分片基础
    一、MongoDB配置     mongodb配置文件/etc/mongodb.conf中的配置项,其实都是mongod启动选项(和memcached一样)[root@Node...
    99+
    2024-04-02
  • 索引失效的7个原因
    索引失效的7个原因 概述1. 最左匹配原则2. 使用函数3. 计算操作4. Like %5. 使用Or导致索引失效6. in使用不当7. order By8. 总结9. 补充 SELECT *...
    99+
    2023-09-23
    mysql java 数据库
  • 【Mongodb】视图 && 索引
    Mongodb视图可以让查询数据变的更加方便,索引让查询数据变得更加快捷,本文介绍如何使用Mongodb的视图功能和索引功能   准备工作 准备2个集合的数据,后面视图和索引都会用到1个订单集合,一个...
    99+
    2015-01-17
    【Mongodb】视图 && 索引
  • MongoDB 更新/删除/索引
    query : update的查询条件,类似sql update查询内where后面的。 update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的 up...
    99+
    2017-09-24
    MongoDB 更新/删除/索引
  • MongoDB中索引怎么用
    小编给大家分享一下MongoDB中索引怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 在任何数...
    99+
    2024-04-02
  • mongodb如何添加索引
    mongodb添加索引的方法:在mongodb可以使用createIndex()方法来创建添加索引,语法格式为:“db.collection.createIndex(keys, options)”,这里keys指的是你创建添加索引的值,并且...
    99+
    2024-04-02
  • MongoDB索引机制详解
    目录⭐ MongoDB 的索引机制⭐ 索引的类型 创建索引 - 单字段索引 创建索引 - 多字段索引 创建索引 - 唯一性索引 创建索引 - 文本索引 创建索引 - 地理空间索引⭐ 查看所有索引⭐ 删除索引⭐ Mongo...
    99+
    2023-04-23
    MongoDB的索引机制 MongoDB的索引 Python MongoDB
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作