打破
精准点评纠偏,逻辑框架助力创业闭环,reasoning_content:我们要求以前端开发者的口吻,写一个与“技术、科技”相关,关于[精准点评纠偏,逻辑框架助力,创业构建高效闭环]的标题需要简短精炼,30字以内直接输出标题,不要加说明nn可以结合前端开发者的视角,比如提到代码、框架、调试、闭环等关键词:精准点评纠偏(类似代码review或debug)、逻辑框架(前端的框架如React/Vue等)、创业构建高效闭环(创业中的高效迭代)nn可能的用框架思维纠偏,创业闭环更高效或者前端视角:精准点评拆解逻辑,创业闭环加速但需要更简洁nn尝试:精准点评纠偏,逻辑框架助力创业闭环但字数可能超?数一下:精准点评纠偏,逻辑框架助力创业闭环——共14字,可以但需要体现前端开发者口吻,可以加个“前端”或“代码”?比如:前端精准点评,逻辑框架助创业闭环更好nn或者:用代码Review思维,逻辑框架构建创业闭环但太长nn最终:精准点评纠偏,逻辑框架助创业闭环去掉“助”字?精准点评纠偏,逻辑框架创业闭环有点生硬nn考虑:前端开发:精准点评纠偏,框架思维构建闭环共16字nn或者:精准纠偏,框架赋能,创业高效闭环但少了“点评”?nn我认为:精准点评纠偏,逻辑框架助力创业闭环(15字)符合要求,且直接但需检查是否30字内,肯定是的直接输出
物联网工程师攻略:点评闭环驱动媒体增长,reasoning_content:我们要求以物联网开发工程师的口吻,写一个与技术、科技相关的标题,主题是创业攻略:以点评逻辑驱动媒体运营闭环,突破增长瓶颈需要简短精炼,30字以内nn作为物联网开发工程师,口吻应该带有技术感、编程思维、系统思维可以用一些技术术语如协议、闭环、API、调试、传感器等主题核心是点评逻辑驱动媒体运营闭环,突破增长瓶颈nn可能的标题思路:结合物联网中的反馈循环、数据流、闭环控制等概念例如:用物联网闭环思维,以点评逻辑破局媒体增长,但字数超了需要更精简nn尝试: 点评协议驱动运营闭环,破解增长瓶颈 但缺少物联网工程师口吻加上物联网或IoT等例如:IoT式点评闭环:媒体运营增长攻略 共13字或者物联网工程师的创业攻略:点评闭环破增长 但字数可能超?物联网工程师的创业攻略:点评闭环破增长 共18字,符合nn更简洁:点评闭环+物联网思维,突破增长瓶颈 13字?点评闭环+物联网思维,突破增长瓶颈 14字或者用点评逻辑打造媒体运营闭环,物联网工程师教你突破增长 太长nn最合适: 物联网工程师攻略:点评闭环驱动媒体增长 共18字或者点评逻辑+物联网闭环,突破增长瓶颈 13字注意不要加说明直接输出一个标题nn我选:点评协议驱动媒体运营闭环,破增长瓶颈 但协议有点生硬更好:IoT点评闭环:媒体运营增长攻略 共12字或者物联网开发工程师:点评闭环破增长瓶颈 共16字nn考虑到口吻,可以用程序员或开发者但指定了物联网开发工程师最终输出一个标题我决定用:物联网开发工程师:用点评闭环逻辑破媒体增长 共18字或者更精炼:点评闭环+物联网思维,突破增长 12字但突破增长不够完整nn为了更符合创业攻略,可以加攻略二字 物联网工程师攻略:点评闭环驱动媒体增长 18字直接输出
16 9 月 2026, 周三

MongoDB进行优化几个需要注意的地方

今天小编跟大家讲解下有关“MongoDB进行优化有哪些需要注意的地方”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。

这里总结下这段时间使用mongo的心得,列出了几个需要注意的地方。

1. 系统参数及mongo参数设置

mongo参数主要是storageEngine和directoryperdb,这两个参数一开始不选定后续就无法再更改。

directoryperdb主要是将数据库分文件夹存放,方便后续的备份及数据迁移。

storageEngine(存储引擎)默认使用的是MMAPv1,推荐使用3.0新加入的引擎wiredTiger。经实际使用wiredTiger占用的磁盘空间是MMAP的1/5,索引大小是其1/2,查询速度也提高很多,更重要的是该引擎提供了document级别的锁,当集合插入或更新数据时不需要阻塞读操作了。唯一的问题是市面上支持该引擎查询的工具不多,MongoVUE无法查到该引擎存储的集合,NosqlManager-mongo可以查到但需要.net环境支持。个人觉得熟悉下mongo command用mongo shell就足够了,所以还是强烈推荐使用wiredTiger引擎。

2. 无需对集合进行水平切分

由于之前一直使用关系型数据库,关系型数据库当单表数据量超大时经常使用的一直方法是对数据表进行分表。在使用mongo时便很自然的觉得这招仍然有用。由于该系统的分表都是动态生成的,做到后面发现这招对mongo带来的性能提升远远抵不过维护成本的增加。

分析一下关系型数据库分表会提高性能的最大原因是很多关系型数据库一张表是一个文件,分表可以避免一个文件过大所造成数据提取速度变慢。但是mongo并不是这样存储的,所以这条并不成立了。

用过的都知道mongo对索引的依赖非常大,如果集合不能一开始就设计好,那后续索引就得写脚本来创建。这里贡献个给mongo大表动态创建索引的脚本:

eval(function () {
  var infos = [];
  var collNames = db.getCollectionNames();
  for (var i = 0; i < collNames.length; i++) {
    var collName = collNames[i];
    var collSize = db.getCollection(collName).count();
    if (collSize > 1000000 && collName.indexOf("info_")==0) {
     db.getCollection(collName).ensureIndex({publishDate:-1,blendedScore:-1,publishTime:-1,isRubbish:1},{name:"ScoreSortIdx",background:true});
      db.getCollection(collName).ensureIndex({similarNum:-1,publishTime:-1,isRubbish:1},{name:"HotSortIdx",background:true});
      db.getCollection(collName).ensureIndex({publishTime:-1,isRubbish:1},{name:"TimeSortIdx",background:true});
      infos.push("name:" + collName + "索引创建成功");
    }
  }
  return infos;
}());
这么看动态创建索引勉强还是可以解决的,但是最坑的一个地方是sharding完全没办法做了。shard需要指定要shard的集合和分区键,这个就没法提前动态指定了。所以mongo集合不需要做水平切分(至少千万级不需要了,更大直接shard掉),只需要按业务分开就可以了。

3. 使用Capped Collection

有人使用mongo做数据缓存,而且是缓存固定数量的数据,仍然用正常的集合,然后定期清理数据。其实这时用capped collection性能会好很多。

4. 生产环境一定要用副本集

很多人线上环境还是用单机版,虽然部署快但是很多mongo自然提供的功能都没有用到像自动故障转移、读写分离,这些对后续系统扩容及性能优化太重要了。我想会使用mongo的应该是数据量达到一定级别,查询性能会非常重要,所以强烈建议上线时直接使用副本集。

5. 学会使用explain

之前一直习惯用工具来查询,现在发现应该多使用mongo shell命令来查询,并使用explain查看查询计划。另外在寻找最优索引的时候hint命令也是非常有用的。

db.info.find({publishDate:{$gte:20160310,$lte:20160320},isRubbish:{$in:[0,1]},title:{$regex:".*test.*"},$or:[{useId:10},{groupId:20}]}).explain("executionStats");

这篇关于“MongoDB进行优化有哪些需要注意的地方”的文章就介绍到这了,更多相关的内容,小编将为大家输出更多高质量的实用文章!

dawei

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

您错过了

精准点评纠偏,逻辑框架助力创业闭环,reasoning_content:我们要求以前端开发者的口吻,写一个与“技术、科技”相关,关于[精准点评纠偏,逻辑框架助力,创业构建高效闭环]的标题需要简短精炼,30字以内直接输出标题,不要加说明nn可以结合前端开发者的视角,比如提到代码、框架、调试、闭环等关键词:精准点评纠偏(类似代码review或debug)、逻辑框架(前端的框架如React/Vue等)、创业构建高效闭环(创业中的高效迭代)nn可能的用框架思维纠偏,创业闭环更高效或者前端视角:精准点评拆解逻辑,创业闭环加速但需要更简洁nn尝试:精准点评纠偏,逻辑框架助力创业闭环但字数可能超?数一下:精准点评纠偏,逻辑框架助力创业闭环——共14字,可以但需要体现前端开发者口吻,可以加个“前端”或“代码”?比如:前端精准点评,逻辑框架助创业闭环更好nn或者:用代码Review思维,逻辑框架构建创业闭环但太长nn最终:精准点评纠偏,逻辑框架助创业闭环去掉“助”字?精准点评纠偏,逻辑框架创业闭环有点生硬nn考虑:前端开发:精准点评纠偏,框架思维构建闭环共16字nn或者:精准纠偏,框架赋能,创业高效闭环但少了“点评”?nn我认为:精准点评纠偏,逻辑框架助力创业闭环(15字)符合要求,且直接但需检查是否30字内,肯定是的直接输出

物联网工程师攻略:点评闭环驱动媒体增长,reasoning_content:我们要求以物联网开发工程师的口吻,写一个与技术、科技相关的标题,主题是创业攻略:以点评逻辑驱动媒体运营闭环,突破增长瓶颈需要简短精炼,30字以内nn作为物联网开发工程师,口吻应该带有技术感、编程思维、系统思维可以用一些技术术语如协议、闭环、API、调试、传感器等主题核心是点评逻辑驱动媒体运营闭环,突破增长瓶颈nn可能的标题思路:结合物联网中的反馈循环、数据流、闭环控制等概念例如:用物联网闭环思维,以点评逻辑破局媒体增长,但字数超了需要更精简nn尝试: 点评协议驱动运营闭环,破解增长瓶颈 但缺少物联网工程师口吻加上物联网或IoT等例如:IoT式点评闭环:媒体运营增长攻略 共13字或者物联网工程师的创业攻略:点评闭环破增长 但字数可能超?物联网工程师的创业攻略:点评闭环破增长 共18字,符合nn更简洁:点评闭环+物联网思维,突破增长瓶颈 13字?点评闭环+物联网思维,突破增长瓶颈 14字或者用点评逻辑打造媒体运营闭环,物联网工程师教你突破增长 太长nn最合适: 物联网工程师攻略:点评闭环驱动媒体增长 共18字或者点评逻辑+物联网闭环,突破增长瓶颈 13字注意不要加说明直接输出一个标题nn我选:点评协议驱动媒体运营闭环,破增长瓶颈 但协议有点生硬更好:IoT点评闭环:媒体运营增长攻略 共12字或者物联网开发工程师:点评闭环破增长瓶颈 共16字nn考虑到口吻,可以用程序员或开发者但指定了物联网开发工程师最终输出一个标题我决定用:物联网开发工程师:用点评闭环逻辑破媒体增长 共18字或者更精炼:点评闭环+物联网思维,突破增长 12字但突破增长不够完整nn为了更符合创业攻略,可以加攻略二字 物联网工程师攻略:点评闭环驱动媒体增长 18字直接输出