MONGODB(二)——索引操作
一、
1、插入10w条数据
> for(var i = 0;i<100000;i++){
... var rand = parseInt(i*Math.random());
... db.person.insert({"name":"hxc"+i,"age":i})
... }
2、使用性能分析函数explain
> db.person.find({“name”:”hxc”+1000}).explain()
{
“cursor” : “BasicCursor”, //表扫描,也就是顺序查找
“isMultiKey” : false,
“n” : 1, //返回了一个文档
“nscannedObjects” : 100006, //浏览的文档数
“nscanned” : 100006,
“millis” : 58, //总共耗时58毫秒
}
3、建立索引
> db.person.ensureIndex({“name”:1})
> db.person.find({“name”:”hxc”+1000}).explain()
{
“cursor” : “BtreeCursor name_1″,采用B树结构存储索引,索引名为”name_1″
“isMultiKey” : false,
“n” : 1,
“nscannedObjects” : 1,
“nscanned” : 1, //!!!!
“nscannedObjectsAllPlans” : 1,
“nscannedAllPlans” : 1,
“nChunkSkips” : 0,
“millis” : 0, //!!!!
}
二、
1、唯一索引
建立唯一索引,重复键值不能输入。唯一索引也不能再已经存在重复键值的表上创建
db.person.ensureIndex({“name”:1},{“unique”:true})。
2、组合索引
> db.person.ensureIndex({“name”:1,”birthday”:1})
> db.person.ensureIndex({“birthday”:1,”name”:1})
查看生成的索引> db.person.getIndexes()
{
“v” : 1,
“key” : {
“name” : 1,
“birthday” : 1
},
“ns” : “test.person”,
“name” : “name_1_birthday_1″
},
{
“v” : 1,
“key” : {
“birthday” : 1,
“name” : 1
},
“ns” : “test.person”,
“name” : “birthday_1_name_1″
}
3、删除索引
> db.person.dropIndexes(“name_1″)
{
“nIndexesWas” : 4,
“msg” : “non-_id indexes dropped for collection”,
“ok” : 1
}
参考
[1] 《8天学通MongoDB》 http://www.cnblogs.com/huangxincheng/archive/2012/02/18/2356595.html
MONGODB(二)——索引操作的更多相关文章
- mongodb的索引操作
在mongodb中,当我们一个集合中的数据量非常大时,比如几百万条数据,如果不使用索引,对数据的查询就会进行全表扫描,这个时候查询的速度就会非常的慢,此时我们就需要为集合建立上索引,从而加快查询的速度 ...
- MongoDB:索引操作
首先插入十万个数据 ;i;i++){ var rand = parseInt(i*Math.random()); db.person_test.insert({"name":&qu ...
- 【翻译】MongoDB指南/CRUD操作(二)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...
- Mongodb学习笔记三(Mongodb索引操作及性能测试)
第三章 索引操作及性能测试 索引在大数据下的重要性就不多说了 下面测试中用到了mongodb的一个客户端工具Robomongo,大家可以在网上选择下载.官网下载地址:http://www.robomo ...
- windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)
windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下 ...
- 008-elasticsearch5.4.3【二】ES使用、ES客户端、索引操作【增加、删除】、文档操作【crud】
一.ES使用,以及客户端 1.pom引用 <dependency> <groupId>org.elasticsearch.client</groupId> < ...
- Hive 基本语法操练(二):视图和索引操作
1. 视图操作 ------- 1) 创建一个测试表. ``` hive> create table test(id int,name string); OK Time taken: 0.385 ...
- MongoDB各种查询操作详解
这篇文章主要介绍了MongoDB各种查询操作详解,包括比较查询.关联查询.数组查询等,需要的朋友可以参考下 一.find操作 MongoDB中使用find来进行查询,通过指定find的第一个参数可 ...
- MongoDb进阶实践之七 MongoDB的索引入门
一.引言 好久没有写东西了,MongoDB系列的文章也丢下好长时间了.今天终于有时间了,就写了一篇有关索引的文章.一说到"索引",用过关系型数据库的人都应该知道它是一个什么 ...
- MongoDB数据库简单操作
之前学过的有mysql数据库,现在我们学习一种非关系型数据库 一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数 ...
随机推荐
- Android逆向破解表单注册程序
Android逆向破解表单注册程序 Android开发 ADT: android studio(as) 程序界面如下,注册码为6位随机数字,注册成功时弹出通知注册成功,注册失败时弹出通知注册失败. 布 ...
- python_flask项目(BBS)_01
项目文件用途说明: config.py , 此文件主要存储一些配置信息,如数据库连接串.debug模式串等. exts.py , 此文件装载第三方库实例对象,如sqlalchemy ...
- Teradata Delete Database and Drop Database
DELETE DATABASE and DELETE USER statements delete all data tables, views, and macros from a database ...
- 26.HashCode
在前面三篇博文中讲解了(HashMap.HashSet.HashTable),在其中不断地讲解他们的put和get方法,在这两个方法中计算key的hashCode应该是最重要也是最精华的部分,所以 ...
- PB开发境界 多个DW进行update
多个DW进行update //菜鸟代码dw_1.Update()dw_2.Update()初级代码IF dw_1.Update() = 1 And dw_2.Update() = 1 THEN ...
- Python基础理论 - Python简介
1. Python介绍 -程序员减少开发成本 创业性公司 - Python使用较多,开发效率高 老牌大公司 - 有部门使用 -应用领域 •自动化运维 -- 安装Linux 自带 Python -- 现 ...
- Jenkins部分插件介绍
1.Join Plugin 功能介绍:这是一个触发job的插件,亮点在于它触发job的条件是等待当前job的所有下游job都完成才会发生. 例:假如A同时触发B1和B2两个下游job,然后配置这个插件 ...
- Azure Sphere–“Object reference not set to an instance of an object” 解决办法
在开发Azure Sphere应用时,如果出现项目无法编译,出现“Object reference not set to an instance of an object”时,必须从下面两个方面进行检 ...
- Chapter 1: Plug-in programing from past to the future
It is the best time. Although the internal API of Android not allowed to be modified by google play, ...
- DOM1级问题与DOM2级事件
前几天有小伙伴问过我一个问题,为什么有DOM 0级事件以及DOM2级事件,但是却没有DOM1级事件呢?那我们今天就来说一说DOM的级别问题. 同时推荐伙伴们可以看看尚学堂有关JavaScript BO ...