mongoDB批量插入数据性能分析、索引效率

新手教学系列——高效管理MongoDB数据:批量插入与更新的实战技巧 在日常开发中,MongoDB作为一种灵活高效的NoSQL数据库,深受开发者喜爱。然而,如何高效地进行数据的批量插入和更新,却常常让人头疼。今天,我们将一起探讨如何使用MongoDB的bulk_write方法,简化我们的数据管理流程,让代码更加简洁高效。通过使用bulk_write,我们不仅能简化代码结构,还能大幅提升批量操作的效率。在实际应用中,特别是面对大量数据时,采用这种方法能有效减少数据库操作的开销,提高系统的整体性能。关注【程序员的开发手册】,让我们一起少走弯路,共同进步! 阅读详情

硬件环境:

一台华硕笔记本 AMD Athlon(tm) X2 Dual-Core ,1GB

软件环境:

单机测试 ,非集群环境 ,python脚本读取一个含60W条数据的文件,插入数据库。

测试方法:

批量插入n条数据,测试cpu、内存、执行时间数据。


测试结果


测试结果
数据量cpu使用率内存使用率执行时间
100099%3%0.19
500099%4%0.9s
1W99$6%1.9s
10W99%20%19s

结果分析:

在环境下,随着一次批量插入的数据量的增加,平均单个数据插入耗时不变,cpu一直处于饱和状态,内存使用路不断增加。故,一次插入10000条以上数据不合适。


PS:python在读取60W条数据的文件,保存到数组中,耗时不到一秒,这是java远不能及的。。。。

        mongodb插入数据的时候,数据库中本来就有几十万条数据,插入的速度没有因此而降低。



索引性能分析

在插入数据的时候,如果数据库简历了索引,会有一些性能损耗,但是查询的时候,如果使用索引速度会大大提升。

 

是否使用索引插入1W条数据耗时从120W条数据中查找一条数据【根据索引查找】
          是             1.9s                                              0s
          否              1.8s                                              2.3s

结论:用索引,太好了,插入的时候那点性能损耗可以忽略。【这不废话吗。。。】


MongoDB数据插入、删除、更新、批量更新某个字段 批量更新某个字段 例1: db.getCollection('bond_sentiment_news').find({"source" : 2,"siteUrl" : "http://www.21jingji.com/"}).forEach( function(item){ db.getCollection('bond_sentiment_news').update({"_id":item._id},{$set:{"siteName":"21经济网" 阅读详情

相关推荐

MongoDB如何查询耗时记录的方法详解

查询操作是我们日常操作数据库经常会遇到的一个功能,下面这篇文章主要给大家介绍了关于MongoDB如何查询耗时记录的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

mongodb插入性能

转自https://blog.youkuaiyun.com/asdfsadfasdfsa/article/details/60872180 MongoDB与MySQL的插入、查询性能测试 7.1平均每条数据的插入时间 先上张图,来点直观感受: 图上数据横坐标是平均每插入1000条数据所需要的时间,单位是秒。记住,是每100...

akuibpt23191的博客 724

RimWorld Mod开发避坑指南:从Defs命名规范到XML结构详解(附实战代码)

本文深入解析RimWorld Mod开发中Defs文件的编写规范与高级技巧,涵盖命名冲突预防、XML结构优化及高级功能实现。通过实战代码示例,帮助开发者避开常见陷阱,提升Mod兼容性与稳定性,特别适合RimWorld Mod开发者参考。

weixin_30790841的博客 450

Mongodb 实战优化

http://snoopyxdy.blog.163.com/blog/static/6011744020157511536993/ Mongodb 实战优化     Mongodb是一个高性能,可扩展数据库,并具有低延迟,高吞吐率的性能。但是使用过程中难免会有所坑,下面将介绍一些优化方案。 以下建议翻译自 亚马逊的 《Perfor

strawbingo的专栏 3459

在Cursor IDE中集成Datadog监控:自然语言查询实战指南

在云原生和微服务架构中,可观测性(Observability)已成为保障系统稳定性的核心技术支柱。其核心原理是通过日志(Logs)、指标(Metrics)和追踪(Traces)三大支柱,实时采集并呈现系统的运行状态。这项技术的价值在于,它让开发者能够透视复杂的分布式系统,快速定位性能瓶颈与故障根因。在实际的工程实践中,开发人员常常需要在编码环境与监控平台之间频繁切换,这种上下文切换严重影响了排障效率。本文聚焦于如何利用Model Context Protocol(MCP),将强大的Datadog可观测性平台

weixin_42519772的博客 348

生信实战|EffectorP3.0在植物病原菌效应子预测中的高效应用

本文详细介绍了EffectorP 3.0在植物病原菌效应子预测中的高效应用。通过机器学习模型,该工具能快速从海量分泌蛋白中批量预测胞质与质外体效应子,显著提升研究效率。文章提供了从环境配置、RNA-seq数据处理到批量预测的完整实战流程,并分享了结果解读与避坑指南,是生信研究人员进行病原物效应子鉴定的必备利器。

weixin_29195615的博客 300

pymongo对mongodb进行批量插入以及批量过大出现的问题

pymongo对mongodb进行批量插入的api与单条插入api相同 不同之处在于inert()之中填的参数一个是单条document,另一个是由多条document所组成的列表 单条 info = { par1: xxxx par2: xxxx } db.collection.inset(info, save=True) 批量 data = [info

Andos's House 1万+

Android Studio运行报错: failed to load include path ……\platforms\android-35\android.jar的最细解决方案

【代码】Android Studio运行报错: failed to load include path ……\platforms\android-35\android.jar的最细解决方案。

2401_86789230的博客 2万+

MongoDB数据查询

1、find函数的介绍和使用 MongoDB数据查询使用find函数,其功能与SQL中的select函数相同,可提供与关系型数据库类似的许多功能,包括映射、排序等。 db.集合名.find(query,fields,limit,skip) query指查询条件,相当于SQL中的where语句。 例如: db.student.fi...

weixin_34220623的博客 180

YOLOv11改进 | 注意力篇 | YOLOv11引入CBAM注意力机制

我们的实验表明各种模型的分类和检测性能得到了一致的改进,证明了 CBAM 的广泛适用性。简单介绍:CBAM的主要思想是通过关注重要的特征并抑制不必要的特征来增强网络的表示能力。模块首先应用通道注意力,关注"重要的"特征,然后应用空间注意力,关注这些特征的"重要位置"。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的,后期我会根据各种前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~

tsg6698的博客 2万+

YOLOv8自定义训练:车牌识别全流程(从标注到推理,附可视化代码)

车牌检测全流程实践指南 摘要:本文详细介绍了基于YOLOv8的车牌检测完整实现方案。针对车牌检测中的三大难点(小目标、多角度、光照变化),提供了从数据准备到模型部署的全流程解决方案。重点包括:1)数据采集与标注规范;2)针对小目标的YOLOv8模型优化配置;3)K-means锚框聚类方法;4)训练参数调优策略。通过实际验证,该方法可获得95%以上的检测准确率,并附有完整的代码实现和可视化工具,便于开发者快速复现应用。 (字数:149字)

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 849

MongoDB批量快速插入100万数据

MongoDB三分钟插入100万数据

qq_44300280的博客 8360

YOLOv11改进 | 网络结构代码逐行解析(二) | yolov11中的Mosaic增强详解

本文给大家带来的是YOLOv10中的Mosaic增强代码的详解,可能有部分人对于这一部分比较陌生,有的读者可能知道Mosaic增强但是不知道其工作原理,具体来说Mosaic增强就是指我们的数据集中的图片在输入给模型之前的一个处理过程(我们的图片并不是直接就输入给模型了,大家的训练结果中的结果检测图片大家可以看到数据集中多个图片会组合在一起这就是简单的Mosaic增强),下面我就来讲解一下其在YOLOv10中工作原理和代码定义,下面图片为一个Mosaic增强后的图片。​。

Snu77的博客 5018

MongoDB - 向MongoDB插入数据:单条插入、批量插入的正确姿势

本文将介绍MongoDB数据插入的正确使用方式,重点讲解单条插入和批量插入两种方法的实现与优化。文章首先概述MongoDB插入操作的基本概念和性能特点,然后详细指导Java开发环境的搭建配置。通过具体代码示例演示单条插入的实现方法,并计划后续讲解批量插入、性能对比和错误处理策略。全文旨在帮助开发者掌握高效、可靠的MongoDB数据写入技术,为数据处理和系统性能优化提供实用参考。

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

MongoDB之索引详解

在mysql中已经学习了索引,并知道索引对于查询速度的提升 mongodb也支持索引,以提升查询速度 1、步骤一:创建大量数据 在命令行中执行如下代码,向集合中插入10万条文档 注意:不要在图形界面中执行,因为软件原因无法插入10万条数据就会中断执行 1 2 3 for(i=0;i<100000;i++){ db.t1.i...

lixinkuan的博客 614

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【Mongodb-01】Mongodb亿级数据性能测试和压测

mongodb数据性能测试

zhenghuishengq的博客 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

MongoDB - MongoDB索引维护:什么时候需要重建索引

MongoDB索引维护指南:何时需要重建索引 本文探讨了MongoDB索引维护的关键问题,重点分析了何时需要重建索引以优化数据库性能。主要内容包括: 索引生命周期与碎片化形成机制,解释了B-Tree索引在增删改操作中如何逐渐变得低效 触发索引重建的5个关键信号: 查询性能明显下降 索引大小异常增长 频繁节点分裂合并 执行大规模删除/更新操作 MongoDB版本升级 三种重建方法比较: reIndex()方法(不推荐生产使用) dropIndex()+createIndex()(推荐做法) 通过collMod

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

【159期】面试官问:说说 MongoDB 批量操作与 MySQL 效率对比?

机会是留给有准备的人,大家在求职之前应该要明确自己的态度,熟悉求职流程,做好充分的准备,把一些可预见的事情做好。对于应届毕业生来说,校招更适合你们,因为绝大部分都不会有工作经验,企业也不会有工作经验的需求。同时,你也不需要伪造高大上的实战经验,以此让自己的简历能够脱颖而出,反倒会让面试官有所怀疑。你在大学时期应该明确自己的发展方向,如果你在大一就确定你以后想成为Java工程师,那就不要花太多的时间去学习其他的技术语言,高数之类的,不如好好想着如何夯实Java基础。请转发本文支持一下。

2401_84046895的博客 694

[310]MongoDB数据插入、删除、更新、批量更新某个字段

批量更新某个字段 例1: db.getCollection('bond_sentiment_news').find({&quot;source&quot; : 2,&quot;siteUrl&quot; : &quot;http://www.21jingji.com/&quot;}).forEach( function(item){ db.getCollection('bond_sentiment..

周小董 12万+

Java-146 深入浅出 MongoDB 数据插入、批量写入、BSON 格式与逻辑查询and or not操作指南

MongoDB 数据操作是学习 NoSQL 数据库的核心内容,包括数据添加、批量插入与条件查询。通过 insertOne() 可快速完成单条文档写入,而 insertMany() 与数组插入方式则能显著提升大数据场景下的写入效率。MongoDB 文档采用 BSON(二进制 JSON)格式,支持字符串、数值、布尔、数组、嵌套文档以及日期、ObjectId、二进制等丰富数据类型,性能和可扩展性优于传统 JSON。在查询方面,MongoDB 提供 $eq、$ne、$gt、$lt 等比较操作符

谢谢你的喜欢 我们一起无限进步 1077

DBA技术栈MongoDB: 索引创建和查询优化

MongoDB可以在一个集合上建立一个或多个索引,而且必须为在字段_id建立一个索引,建索引的目的与关系数据库一样,就是为了提高对数据库的查询效率;一旦索引创建好,MongoDB会自动地根据数据的变化维护索引,如果索引太大而不能全部保存在内存中,将被移到磁盘文件上,这样会影响查询性能,因此要时刻监控索引的大小,保证合适的索引在内存中;监控一个查询是否用到索引,可以在查询语句后用explain命令或profile()方式进行监控。

运维仙人 1841

MongoDB索引操作

分享下mongodb中关于索引的基本操作,我们日常做开发都避免不了要对程序进行性能优化,而程序的操作无非就是CURD,通常我们 又会花费50%的时间在R上面,因为Read操作对用户来说是非常敏感的,处理不好就会被人唾弃,呵呵。     从算法上来说有5种经典的查找,具体的可以参见我的算法速成系列,这其中就包括我们今天所说的“索引查找”,如果大家对sqlserver比较了解 的话,

Stone的专栏 1443

深入详解MongoDB索引的数据组织结构

MongoDB的索引结构是实现高性能查询的关键所在。通过深入了解B树与B+树的工作原理、不同类型的索引及其用途,以及优化索引使用的策略,可以更好地利用MongoDB的索引功能来提升数据库的性能。

码到三十五 2754

【杂谈】通过MongoDB建立数据库索引

最近和老师做项目,用到了两个集合:空气质量pm和气象数据meteo,pm包含1500万条数据,meteo包含300万条数据。目的是要找出这其中时间“time”属性能够相对应的所有数据。例如:pm和meteo都有2013-12-01 12:00:00这一时刻的数据,其中pm有920条这一时刻的空气质量数据(因为有很多不同的空气质量监测站点),meteo有350条这一时刻的气象数据(因为有很多不同的气象

Seek Joy's IT Notebook 1319
上一篇: mongoDB安全认证机制
下一篇: TypeError: distinct() takes exactly 2 arguments (3 given)
freewind
博客等级 码龄16年 136粉丝 108原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值