前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python爬虫之mongodb的索引操作

Python爬虫之mongodb的索引操作

作者头像
海仔
发布2020-09-23 11:58:16
4400
发布2020-09-23 11:58:16
举报
文章被收录于专栏:海仔技术驿站海仔技术驿站

Mongodb的索引操作

学习目标
  1. 掌握 mongodb索引的创建,删除操作
  2. 掌握 mongodb查看索引的方法
  3. 掌握 mongodb创建唯一索引的方法

1. 为什么mongdb需要创建索引

  • 加快查询速度
  • 进行数据的去重

2. mongodb创建简单的索引方法

  • 语法:db.集合名.ensureIndex({属性:1}),1表示升序, -1表示降序

3. 创建索引前后查询速度对比

测试:插入10万条数据到数据库中

插入数据:

代码语言:javascript
复制
for(i=0;i<100000;i++){db.t1.insert({name:'test'+i,age:i})}

创建索引前:

代码语言:javascript
复制
db.t1.find({name:'test10000'})
db.t1.find({name:'test10000'}).explain('executionStats') # 显示查询操作的详细信息

创建索引:

代码语言:javascript
复制
db.t1.ensureIndex({name:1})

创建索引后:

代码语言:javascript
复制
db.t1.find({name:'test10000'}).explain('executionStats')

前后速度对比

在这里插入图片描述
在这里插入图片描述

4. 索引的查看

默认情况下_id是集合的索引 查看方式:db.集合名.getIndexes()

5. 删除索引

语法:db.集合名.dropIndex({'索引名称':1})

代码语言:javascript
复制
db.t1.dropIndex({name:1})
db.t1.getIndexes()

6. mongodb创建唯一索引

在默认情况下mongdb的索引域的值是可以相同的,创建唯一索引之后,数据库会在插入数据的时候检查创建索引域的值是否存在,如果存在则不会插入该条数据,但是创建索引仅仅能够提高查询速度,同时降低数据库的插入速度。

6.1 添加唯一索引的语法:
代码语言:javascript
复制
db.集合名.ensureIndex({"字段名":1}, {"unique":true})
6.2 利用唯一索引进行数据去重

根据唯一索引指定的字段的值,如果相同,则无法插入数据

代码语言:javascript
复制
db.t1.ensureIndex({"name":1}, {"unique":true})
db.t1.insert({name: 'test10000'})

7. 建立复合索引

在进行数据去重的时候,可能用一个域来保证数据的唯一性,这个时候可以考虑建立复合索引来实现。

例如:抓全贴吧信息,如果把帖子的名字作为唯一索引对数据进行去重是不可取的,因为可能有很多帖子名字相同

建立复合索引的语法:db.collection_name.ensureIndex({字段1:1,字段2:1})

8. 建立索引注意点

  • 根据需要选择是否需要建立唯一索引
  • 索引字段是升序还是降序在单个索引的情况下不影响查询效率,但是带复合索引的条件下会有影响
  • 数据量巨大并且数据库的读出操作非常频繁的时候才需要创建索引,如果写入操作非常频繁,创建索引会影响写入速度 例如:在进行查询的时候如果字段1需要升序的方式排序输出,字段2需要降序的方式排序输出,那么此时复合索引的建立需要把字段1设置为1,字段2设置为-1
课后思考

数据库为什么要做读写分离(读写分离的意义)?

小结

  1. 掌握mongodb索引的创建,删除操作
  2. 掌握mongodb查看索引的方法
  3. 掌握mongodb创建唯一索引的方法

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mongodb的索引操作
    • 1. 为什么mongdb需要创建索引
      • 2. mongodb创建简单的索引方法
        • 3. 创建索引前后查询速度对比
          • 4. 索引的查看
            • 5. 删除索引
              • 6. mongodb创建唯一索引
                • 6.1 添加唯一索引的语法:
                • 6.2 利用唯一索引进行数据去重
              • 7. 建立复合索引
                • 8. 建立索引注意点
                  • 课后思考
              • 小结
              相关产品与服务
              云数据库 MongoDB
              腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档