mongodb索引--从55.7秒到毫秒级别

本文介绍在Windows7环境下验证MongoDB索引的好处。先下载并启动MongoDB服务器,安装Robo 3T客户端,准备1亿条数据。接着获取索引情况,根据姓名查询记录并创建索引。还说明了索引能提高查询效率,是特殊的数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从头开始,验证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在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值