c#操作mongodb插入数据效率的示例分析
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍了c#操作mongodb插入数据效率的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。mongodb的数据插入速
千家信息网最后更新 2026年11月03日c#操作mongodb插入数据效率的示例分析
这篇文章主要介绍了c#操作mongodb插入数据效率的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
mongodb的数据插入速度是其一个亮点,同样的10000条数据,插入的速度要比Mysql和sqlserver都要快,当然这也是要看使用者怎么个使用法,你代码如果10000次写入使用10000次连接,那也是比不过其他数据库使用事务一次性提交的速度的。
同样,mongo也提供的一次性插入巨量数据的方法,因为mongodb没有事务这回事,所以在在C#驱动里,具体方法是InsertManyAsync()一次性插入多个文档。与之对应的是InsertOneAsync,这个是一次插入一个文档;
InsertManyAsync()这个方法带入的参数只要是实现了IEnumerable接口的类型就可以,所以可是list<>,这样的数据类型;
同样的10000次插入,两个方法时间差别很大。如图:
使用一次性插入多个文档方法,插入10000条耗时仅1.3秒,分成10000次插入,耗时19.9秒。区别大了个去。同样,前面我做过使用mysql插入10000条记录,要用4秒多,可见,这mongodb插入速度不是吹 的。
具体的代码如下,贴上:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using MongoDB.Bson;using MongoDB.Driver;using System.Diagnostics;namespace sqltomongo{ public class MongoHelp { private static IMongoClient client { get { if (null == _client) { _client = new MongoClient("mongodb://127.0.0.1:27017"); } return _client; } } public static IMongoDatabase database { get { _database = client.GetDatabase("HotelPersonInfo"); return _database; } set { _database = value; } } public static IMongoCollection collection { get { return _collection; } set { _collection = value; } } protected static IMongoClient _client; protected static IMongoDatabase _database; protected static IMongoCollection _collection; //测试效率,两个方法用时比较 public async static void TestMongo() { //自定义的对象 RoomInfo roomdata = new RoomInfo(); List docunemts = new List(); collection = database.GetCollection("HotelPersonInfo"); Stopwatch sw = new Stopwatch(); sw.Start(); for (int i = 1; i < 10000; i++) { //mongo对用户自定义的对象扩展了tobasonDocument这个方法,可直接用 var roomdatadocument = new BsonDocument(roomdata.ToBsonDocument()); docunemts.Add(roomdatadocument); } //一次10000条 //这方法 查看api手册,只要实现了IEnumerable借口的类型就都行 await collection.InsertManyAsync(docunemts); sw.Stop(); TimeSpan ts2 =sw.Elapsed; Console.WriteLine("total is " + ts2.TotalMilliseconds); ///一次次插 10000次 Stopwatch sw2 = new Stopwatch(); sw2.Start(); for (int i = 1; i < 10000; i++) { var roomdatadocument = new BsonDocument(roomdata.ToBsonDocument()); await collection.InsertOneAsync(roomdatadocument); } sw2.Stop(); TimeSpan ts22 = sw2.Elapsed; Console.WriteLine("total is " + ts22.TotalMilliseconds); // await collection.InsertOneAsync(roomdatadocument); //collection = database.GetCollection("HotelPersonInfo"); // collection.InsertOneAsync(roomdatadocument); } }} 里面使用了一个自定义的对象:
代码如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using MongoDB.Bson;namespace sqltomongo{ public class RoomInfo { public RoomInfo() { // id = "test"; Name = "nafd"; Moblie = "123456"; EMail = "dd@qq.com"; Tel = "010123"; Fax = "0755-001"; IdentityId = "616112323231"; RegisterType = "tid"; CardNo = "cardno"; Sex = "男"; Birthday = "1999"; Address = "china beijing"; ZipCode = "519000"; RegisterDate = "2015-03-03"; District2 = "District2"; District3 = "District3"; District4 = "District4"; } // public string id { get; set; } /// /// 名字 /// public string Name { get; set; } /// /// 手机号码 /// public string Moblie { get; set; } /// /// 邮箱 /// public string EMail {get;set;} /// /// 座机 /// public string Tel { get; set; } /// /// 传真 /// public string Fax { get; set; } /// /// 身份证 /// public string IdentityId { get; set; } /// /// 使用什么注册的 /// ID --身份证 (只需要id身份证的信息) /// public string RegisterType { get; set; } /// /// 会员卡号 /// public string CardNo { get; set; } /// /// 性别 /// public string Sex { get; set; } /// /// 生日 /// public string Birthday { get; set; } /// /// 地址 /// public string Address { get; set; } /// /// 邮编 /// public string ZipCode { get; set; } public string District2 { get; set; } public string District3 { get; set; } public string District4 { get; set; } /// /// 注册时间 /// public string RegisterDate { get; set; } }}感谢你能够认真阅读完这篇文章,希望小编分享的"c#操作mongodb插入数据效率的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
数据
方法
一次性
篇文章
速度
效率
代码
对象
文档
类型
身份
身份证
示例
c#
分析
两个
事务
多个
时间
很大
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云信互联网科技有限公司
中关村互联网科技集团
奇酷互联网络科技公司
成都狮子座互联网科技
卓越科技互联网 招聘
金融科技和互联网金融
互联网科技类展会
互联网科技股午盘股票涨跌
隆华科技工业互联网
创业天下互联网科技有限公司
互联网大会黑科技排名
全球顶尖互联网科技公司
华夏恒生科技与互联网科技
工业互联网等科技实现智能化赋能
济南有互联网科技公司吗
35岁以上互联网科技行业
互联网科技包装股
普陀区互联网教育科技管理办法
中国新注册互联网科技
安徽九吞吴互联网科技有限公司
互联网是第几次科技革命的成果
岳阳华臻互联网科技有限公司
智腾互联网科技有限公司
深圳市优智互联网科技有限公司
长沙互联网科技
上海科技产业互联网平台
半导体是互联网高科技吗
云南互联网科技学费
易租星互联网科技有限公司
互联网企业和网络科技有限公司