nosql--09MongoBD的索引创建

创建索引

创建索引用来提升查询速度

MongoBD可以使用js语句,插入十万条数据到数据库中

for(i=0;i<100000;i++){db.t255.insert({name:'test'+i,age:i})}
  • 查看没建立索引之前查询时间.explain("executionStats")
    在这里插入图片描述
    可以看到查询时间为45毫秒

  • 按照名字建立索引
    在这里插入图片描述
    可以看到建立索引之前有一个索引,那是_id,建立之后有两个索引

  • 再查询
    在这里插入图片描述
    建立索引之后,查询时间0毫秒

索引

  • 在默认情况下索引字段值可以相同
  • 创建唯一索引
db.t.ensureIndex({"name":1},{"unique":ture})
  • 建立联合索引
db.ensureIndex({name:1,age:1})
  • 查看当前所有索引
db.t.getIndexes()
  • 删除索引
db.t.dropIndex("索引名")

爬虫去重

  • 使用数据库建立关键字段的唯一索引进行去重
  • 根据url地址去重
    • 拿到对应的数据是不会变的,url地址能唯一判断一条数据的情况
    • url存在redis中
    • 拿到url地址,判断url在redis中的url集合是否存在
    • 存在:说明url地址已经被请求过,所以不请求了
    • 不存在:没爬过,去爬
  • 布隆过滤器:
    • 使用加密地址加密url地址,得到多个值
    • 往对应值的位置把结果设置为1
    • 新来的url地址,如果对应位置的值也是为1,说明这个url地址已经抓过
  • 根据数据样本进行去重
    • 选择特定的字段,使用加密算法md5,进行字段加密,生成字符串,存入redis中
    • 后续新来的一条数据,同样的方法加密,如果得到的字符串在redis中,则数据存在

猜你喜欢

转载自blog.csdn.net/qq_34788903/article/details/89382581
今日推荐