• .NET 百万级 大数据插入、更新 ,支持多种数据库


    功能介绍  (需要版本5.0.45)

    大数据操作ORM性能瓶颈在实体转换上面,并且不能使用常规的Sql去实现

    当列越多转换越慢,SqlSugar将转换性能做到极致,并且采用数据库最佳API

    操作数据库达到极限性能

    功能用法

    BulkCopy 性能远强于现有市场的 ORM框架,比 EFCore Efcore.Bulkextension 快30%

    BulkUpdate 吊打现有所有框架 是 EFCore Efcore.Bulkextension 2-3倍之快

    //插入 100万 10秒不到 
    db.Fastest<RealmAuctionDatum>().BulkCopy(GetList());//性能 比现有任何Bulkcopy都要快30%
    
    
    //更新
    db.Fastest<RealmAuctionDatum>().BulkUpdate(GetList());//更新 吊打所有框架N倍,30列100万8秒更新完
    db.Fastest<RealmAuctionDatum>().BulkUpdate(GetList(),new string[]{"id"},new string[]{"name","time"})//无主键用法
    
    
    //表设置别名
    db.Fastest<RealmAuctionDatum>().AS("tableName").BulkCopy(GetList())
    

      

    数据库支持

    数据库 API 支持自增
    SqlSever 全支持

    MySql

    连接字符串要加AllowLoadLocalInfile=true

    全支持
    PgSql 全支持 否   
    Oracle BulkCopy

     

    性能测试

    插入方案SqlSugar VS EFCore  EFCore.BulkExtensions

    10万条数据 30列 ,可以看出EFCore.BulkExtensions在第一插入性能非常慢,正常情况下大数据插入也就比第一次

    在更新方面SqlSugar也利用了bulkCopy方式进行更新,这一方面.NET  除了EFCore.BulkExtensions

    并没有发现有相关的产品(收费除外), 在更新操作方案 SqlSugar基本上是独一无二的

    EFCore.BulkExtensions 缺点 只支持 SqlServer 并且性能不如SqlSugar

    使用疑问

    1.比如Sqlite ... 还不支持怎么办?

    答:Sqlite普通插入加上事务就已经是市场上优秀水平了 (后续争取在技术上有突破支持SQLITE)

    db.Insertable(insertObj).ExecuteReturnIdentity();//普通插入并不慢 ,列不多情况1秒可以插入1万

    2.什么情况用db.Fastest

    答: db.Fastest主要是用于大数据插入、更新处理,如果1000条以下就没有必要使用了,毕竟支持的API没有普通插入丰富,

    在小数据插入上也并没有太多优势,db.Fastest性能主要强大1000以上的数据处理 

     

    老版本

    老版本可以这么用,性能不如db.Fastest

    //(3)、blukCopy插入
    //只适合1万以上超大数据插入或者上面数据插入慢情况,小数据插入性能不行,不是所有库都支持
     
    db.Insertable(List<实体>).UseSqlServer().ExecuteBulkCopy() 
     
    db.Insertable(List<实体>).UseMySql().ExecuteBulkCopy()//高版本Mysql.data驱动,连接字符串要加AllowLoadLocalInfile=true
     
    db.Insertable(List<实体>).UseOracle().ExecuteBulkCopy()//5.0.3.8-Preview
    

      

    源码下载:

    https://github.com/donet5/SqlSugar   sqlsugar已经持续更新7年之久,也越来越完善 ,如果说EF或者其它ORM不更新了,那么多一个开源就是多一个选择,

    谢谢支持 ,随着大数据库时代的到来,用户对数据处理也要求越来越高,一款海量数据的读、写、更新的框架必不可少

  • 相关阅读:
    linux 6 安装 Nagios服务
    linux 6 安装 Nginx服务
    Rsync的配置与使用
    linux 6 搭建 msyql 服务
    linux6搭建Apache服务
    Linux 7搭建NFS服务
    Linux 6 忘记root密码重置
    简单makefile
    多线程c++11编程题目
    redis 代码结构与阅读顺序
  • 原文地址:https://www.cnblogs.com/sunkaixuan/p/15587149.html
Copyright © 2020-2023  润新知