博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mongodb索引--从55.7秒到毫秒级别
阅读量:6501 次
发布时间:2019-06-24

本文共 1605 字,大约阅读时间需要 5 分钟。

从头开始,验证mongodb的索引的好处。(window7环境下)

  1. 下载mongodb服务器,并解压到d盘,并使用以下命令启动 mongod --dbpath D:\mongodb\data
  2. mongo客户端Robo 3T 去官网下载,安装
  3. 准备数据,条数为1亿
public static void main(String[] args) {        try {            /**** Connect to MongoDB ****/            // Since 2.10.0, uses MongoClient            MongoClient mongo = new MongoClient("localhost", 27017);            /**** Get database ****/            // if database doesn't exists, MongoDB will create it for you            DB db = mongo.getDB("www");            /**** Get collection / table from 'testdb' ****/            // if collection doesn't exists, MongoDB will create it for you            DBCollection table = db.getCollection("person");            /**** Insert ****/            // create a document to store key and value            BasicDBObject document=null;                        for(int i=0;i<100000000;i++) {                document = new BasicDBObject();                document.put("name", "mkyong"+i);                document.put("age", 30);                document.put("sex", "f");                table.insert(document);            }            /**** Done ****/            System.out.println("Done");        } catch (UnknownHostException e) {            e.printStackTrace();        } catch (MongoException e) {            e.printStackTrace();        }    }复制代码
  1. 获取索引情况
  2. 根据姓名查询一条记录6.
  3. 根据姓名创建索引

创建索引的时间稍微有点长,请耐心等待

db.person.createIndex({name:1})

7. 索引情况
8. 再一次查询

索引说明:

索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。

这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。

索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构。

转载地址:http://pfxyo.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
CoreOS 手动更新
查看>>
golang 分页
查看>>
再论机械式针对接口编程
查看>>
25 个 Linux 性能监控工具
查看>>
C#程序员整理的Unity 3D笔记(十三):Unity 3D基于组件的思想
查看>>
Tengine-2.1.1 ngx_http_concat_module 400问题
查看>>
Windows中挂载安装ISO文件
查看>>
Wayland 1.0发布
查看>>
golang的goroutine是如何实现的?
查看>>
乐视云基于Kubernetes的PaaS平台建设
查看>>
R 学习笔记《十》 R语言初学者指南--图形工具
查看>>
PHP通过读取DOM抓取信息
查看>>
DICOM医学图像处理:DICOM网络传输
查看>>
nio和传统Io的区别
查看>>
移动端网页布局中需要注意事项以及解决方法总结
查看>>
(原创)Linux下查看系统版本号信息的方法
查看>>
oracle
查看>>
redis使用过程中主机内核层面的一些优化
查看>>
我也要谈谈大型网站架构之系列(2)——纵观历史演变(下)
查看>>