亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

c#操作mongodb插入數(shù)據(jù)效率

 更新時(shí)間:2019年01月22日 10:53:40   作者:chenqiangdage  
今天小編就為大家分享一篇關(guān)于c#操作mongodb插入數(shù)據(jù)效率,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

mongodb的數(shù)據(jù)插入速度是其一個(gè)亮點(diǎn),同樣的10000條數(shù)據(jù),插入的速度要比Mysql和sqlserver都要快,當(dāng)然這也是要看使用者怎么個(gè)使用法,你代碼如果10000次寫(xiě)入使用10000次連接,那也是比不過(guò)其他數(shù)據(jù)庫(kù)使用事務(wù)一次性提交的速度的。

同樣,mongo也提供的一次性插入巨量數(shù)據(jù)的方法,因?yàn)閙ongodb沒(méi)有事務(wù)這回事,所以在在C#驅(qū)動(dòng)里,具體方法是InsertManyAsync()一次性插入多個(gè)文檔。與之對(duì)應(yīng)的是InsertOneAsync,這個(gè)是一次插入一個(gè)文檔;

InsertManyAsync()這個(gè)方法帶入的參數(shù)只要是實(shí)現(xiàn)了IEnumerable接口的類(lèi)型就可以,所以可是list<>,這樣的數(shù)據(jù)類(lèi)型;

同樣的10000次插入,兩個(gè)方法時(shí)間差別很大。如圖:

使用一次性插入多個(gè)文檔方法,插入10000條耗時(shí)僅1.3秒,分成10000次插入,耗時(shí)19.9秒。區(qū)別大了個(gè)去。同樣,前面我做過(guò)使用mysql插入10000條記錄,要用4秒多,可見(jiàn),這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<BsonDocument> collection
    {
      get {
        return _collection;
      }
      set {
        _collection = value;
      }
    }
    protected static IMongoClient _client;
    protected static IMongoDatabase _database;
    protected static IMongoCollection<BsonDocument> _collection;
     //測(cè)試效率,兩個(gè)方法用時(shí)比較
    public async static void TestMongo()
    {
      //自定義的對(duì)象
      RoomInfo roomdata = new RoomInfo();
      List<BsonDocument> docunemts = new List<BsonDocument>();
      collection = database.GetCollection<BsonDocument>("HotelPersonInfo");
      Stopwatch sw = new Stopwatch();
      sw.Start();
      for (int i = 1; i < 10000; i++)
      {
         //mongo對(duì)用戶自定義的對(duì)象擴(kuò)展了tobasonDocument這個(gè)方法,可直接用
        var roomdatadocument = new BsonDocument(roomdata.ToBsonDocument());
        docunemts.Add(roomdatadocument);
      }
      //一次10000條
       //這方法 查看api手冊(cè),只要實(shí)現(xiàn)了IEnumerable借口的類(lèi)型就都行
      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<BsonDocument>("HotelPersonInfo");
      // collection.InsertOneAsync(roomdatadocument);
    }
  }
}

里面使用了一個(gè)自定義的對(duì)象:

代碼如下:

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; }
    /// <summary>
    /// 名字
    /// </summary>
    public string Name { get; set; }      
     /// <summary>
    /// 手機(jī)號(hào)碼
    /// </summary>
    public string Moblie { get; set; }
    /// <summary>
    /// 郵箱
    /// </summary>
    public string EMail {get;set;}
    /// <summary>
    /// 座機(jī)
    /// </summary>
    public string Tel { get; set; }
    /// <summary>
    /// 傳真
    /// </summary>
    public string Fax { get; set; }
    /// <summary>
    /// 身份證
    /// </summary>
    public string IdentityId { get; set; }
     /// <summary>
    /// 使用什么注冊(cè)的
    /// ID --身份證 (只需要id身份證的信息)
    /// </summary>
    public string RegisterType { get; set; }
      /// <summary>
    /// 會(huì)員卡號(hào)
    /// </summary>
    public string CardNo { get; set; }
    /// <summary>
    /// 性別
    /// </summary>
    public string Sex { get; set; }
    /// <summary>
    /// 生日
    /// </summary>
    public string Birthday { get; set; }
    /// <summary>
    /// 地址
    /// </summary>
    public string Address { get; set; }
    /// <summary>
    /// 郵編
    /// </summary>
    public string ZipCode { get; set; }
    public string District2 { get; set; }
    public string District3 { get; set; }
    public string District4 { get; set; }
    /// <summary>
    /// 注冊(cè)時(shí)間 
    /// </summary>
    public string RegisterDate { get; set; }
  }
}

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • mac下安裝和配置mongodb的步驟詳解

    mac下安裝和配置mongodb的步驟詳解

    大家都知道MongoDB是一個(gè)跨平臺(tái)的,面向文檔的數(shù)據(jù)庫(kù),提供高性能,高可用性和可擴(kuò)展性方便。那么下面這篇文章就來(lái)給大家介紹了關(guān)于在mac系統(tǒng)下安裝和配置mongodb的方法步驟,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-07-07
  • mongodb root用戶創(chuàng)建數(shù)據(jù)庫(kù)提示not master的解決

    mongodb root用戶創(chuàng)建數(shù)據(jù)庫(kù)提示not master的解決

    這篇文章主要介紹了mongodb root用戶創(chuàng)建數(shù)據(jù)庫(kù)提示not master的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2023-02-02
  • 一次因mongo查詢(xún)不存在字段引發(fā)的事故記錄

    一次因mongo查詢(xún)不存在字段引發(fā)的事故記錄

    這篇文章主要給大家介紹了關(guān)于一次因mongo查詢(xún)不存在字段引發(fā)的事故記錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • MongoDB索引類(lèi)型匯總分享

    MongoDB索引類(lèi)型匯總分享

    這篇文章主要介紹了MongoDB索引類(lèi)型匯總,單字段索引、復(fù)合索引、多鍵索引、文本索引、2dsphere索引等多種索引類(lèi)型,需要的朋友可以參考一下
    2022-04-04
  • 關(guān)于MongoDB數(shù)據(jù)庫(kù)學(xué)習(xí)路線指南

    關(guān)于MongoDB數(shù)據(jù)庫(kù)學(xué)習(xí)路線指南

    這篇文章主要介紹了關(guān)于MongoDB數(shù)據(jù)庫(kù)學(xué)習(xí)路線指南,給大家以學(xué)習(xí)路線地圖的形式講解該怎么學(xué)習(xí)MongoDB數(shù)據(jù)庫(kù),需要的朋友可以參考下
    2023-04-04
  • MongoDB備份和還原的操作指南

    MongoDB備份和還原的操作指南

    MongoDB備份和還原是指將MongoDB數(shù)據(jù)庫(kù)中的數(shù)據(jù)和集合備份到另一個(gè)存儲(chǔ)位置,并在需要的時(shí)候恢復(fù)這些備份的過(guò)程,備份和還原MongoDB數(shù)據(jù)庫(kù)非常重要,本文給大家介紹了MongoDB備份和還原的操作指南,需要的朋友可以參考下
    2024-05-05
  • MongoDB為什么比Mysql快原理解析

    MongoDB為什么比Mysql快原理解析

    這篇文章主要為大家介紹了MongoDB為什么比Mysql快原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 解決net start MongoDB 報(bào)錯(cuò)之服務(wù)名無(wú)效的問(wèn)題

    解決net start MongoDB 報(bào)錯(cuò)之服務(wù)名無(wú)效的問(wèn)題

    這篇文章主要介紹了解決net start MongoDB 報(bào)錯(cuò)之服務(wù)名無(wú)效的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Windows下MongoDB的下載安裝、環(huán)境配置教程圖解

    Windows下MongoDB的下載安裝、環(huán)境配置教程圖解

    這篇文章主要介紹了Windows下MongoDB的下載安裝、環(huán)境配置教程詳解,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-06-06
  • MongoDB安裝及接入springboot的詳細(xì)過(guò)程

    MongoDB安裝及接入springboot的詳細(xì)過(guò)程

    MongoDB是一個(gè)開(kāi)源、高性能、無(wú)模式(模式自由)的文檔(Bson)型數(shù)據(jù)庫(kù),這篇文章主要介紹了MongoDB安裝及接入springboot,需要的朋友可以參考下
    2024-05-05

最新評(píng)論