美文网首页程序员
mongodb使用的一些技巧与性能优化

mongodb使用的一些技巧与性能优化

作者: 开飞机的贝吉塔 | 来源:发表于2017-06-19 16:52 被阅读0次

字段重命名

将coll1表中oprater1字段名换成oprater

db.getCollection('coll1').update({},{"$rename":{'oprater1':'oprater'}},false,true)

根据mongodb中内嵌数组数量限制进行查询

  • 查询a_col表中name键数组数量为1的数据

      db.getCollection('a_col').find({'name': {‘$size':1}})
    
  • 查询a_col表中name键数组数量大于1的数据

      db.getCollection(‘col_a').find({'name.1': {‘$exists':1}})
    

索引(所有命令注意大小写)

  • 创建索引

  •   db.coll.ensureIndex({"firstname": 1})
    
  • 查看已创建的索引

      db.coll.getIndexes()
    
  • 删除索引

  •   db.coll.dropIndex({"firstname": 1})
    
  • 创建复合索引

数字1表示firstname键的索引按升序存储,-1表示lastname键的索引按照降序方式存储。

    db.coll.ensureIndex({"firstname": 1,"lastname":-1}) 
  • 创建唯一索引

      db.coll.ensureIndex({"firstname": 1, "lastname": 1}, {"unique": true});
    

    创建成功后重复插入会报错”E11000 duplicate key error index“

  • 创建唯一索引并删除重复记录(mongodb版本3.0以上不适用)

      db.coll.ensureIndex({"productid":1}, {"unique":true, "dropDups":true})
    
  • 后台创建索引

后台创建索引,创建时不会阻塞其他操作,效率会比阻塞方式创建低一点

    db.coll.ensureIndex({"firstname":1},{"background":true})

性能优化

性能分析函数(explain)

db.coll.find({"name":name}).explain()

显示执行状态

db.coll.find({"name":name}).explain("executionStats")

mongodb使用主从配置提高性能

http://www.cnblogs.com/myblog1314/p/3914810.html
http://www.cnblogs.com/yujon/p/6128761.html

mongodb使用副本集提高性能,读写分离

http://www.cnblogs.com/yujon/p/6128824.html

相关文章

网友评论

    本文标题:mongodb使用的一些技巧与性能优化

    本文链接:https://www.haomeiwen.com/subject/olxnqxtx.html