.NET 百万级 大数据插入、更新 ,支持多种数据库
功能介绍 (需要版本5.0.44)
大数据操作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不更新了,那么多一个开源就是多一个选择,
谢谢支持 ,随着大数据库时代的到来,用户对数据处理也要求越来越高,一款海量数据的读、写、更新的框架并不可少
.NET 百万级 大数据插入、更新 ,支持多种数据库的更多相关文章
- SQL Server百万级大数据量删除
删除一个表中的部分数据,数据量百万级. 一般delete from 表 delete from 表名 where 条件: 此操作可能导致,删除操作执行的时间长:日志文件急速增长: 针对此情况处理 de ...
- [NewLife.XCode]分表分库(百亿级大数据存储)
NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量 ...
- Impala简介PB级大数据实时查询分析引擎
1.Impala简介 • Cloudera公司推出,提供对HDFS.Hbase数据的高性能.低延迟的交互式SQL查询功能. • 基于Hive使用内存计算,兼顾数据仓库.具有实时.批处理.多并发等优点 ...
- 关于处理百万级大批量数据的mysql运行几个重要点
处理大批量百万级的数据几点重要知识点: 一:设置php运行的内存配置 ini_set("memory_limit","1200M"); 在php.ini中有如下 ...
- 揭秘阿里云EB级大数据计算引擎MaxCompute
日前,全球权威咨询与服务机构Forrester发布了<The Forrester WaveTM: Cloud Data Warehouse, Q4 2018>报告.这是Forrester ...
- 大数据量高并发的数据库优化详解(MSSQL)
转载自:http://www.jb51.net/article/71041.htm 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能. ...
- SNF开发平台-SNF.CodeGenerator-升级生成BS页面代码-支持视图-数据库配置-快速开发者的利器
有一段时间没有进行总结SNF快速开发平台了,这段时间把今年在框架升级部分进行整理说明. 下面就把代码生成器升级部分介绍一下: 1.新增BS页面生成代码 2.新增视图支持 3.新增 数据库配置 1.新增 ...
- 首次公开!单日600PB的计算力--阿里巴巴EB级大数据平台的进击
MaxCompute作为阿里巴巴的主力计算平台,在2018年的双11中,再次不负众望,经受住了双11期间海量数据和高并发量的考验.为集团的各条业务线提供了强劲的计算力,不愧是为阿里巴巴历年双11输送超 ...
- 用FlexGrid做开发,轻松处理百万级表格数据
表格数据处理是我们项目开发中经常会遇到的设计需求之一,所需处理的数据量也较大,通常是万级.甚至百万级.此时,完全依赖平台自带的表格工具,往往无法加载如此大的数据量,或者加载得很慢影响程序执行. 那么, ...
随机推荐
- Cobar提出的一种在分库场景下对Order By / Limit 的优化
搜索关注微信公众号"捉虫大师",后端技术分享,架构设计.性能优化.源码阅读.问题排查.踩坑实践. 本文已收录 https://github.com/lkxiaolou/lkxiao ...
- 独家对话阿里云函数计算负责人不瞋:你所不知道的 Serverless
作者 | 杨丽 出品 | 雷锋网产业组 "Serverless 其实离我们并没有那么遥远". 如果你是一名互联网研发人员,那么极有可能了解并应用过 Serverless 这套技术体 ...
- 用最简单的方式理解 IoC 控制反转
思想引入 假设一个系统原先只设定有一个默认的方法去完成业务,这里举例这个原先设定开发的是 UserDaoImpl(可能有些牵强,但是不影响我们对逻辑的理解)这样一个业务. 后来有一天,需求变了,业务流 ...
- PAT (Basic Level) Practice (中文)1009 说反话 (20分)
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小 ...
- Framework - 性能统计
摘要 近期对接客户时,客户方希望提供 SDK 的性能.内存.隐私支持等一些数据,所以就对 SDK 进行了一些性能测试. 在用表格统计整理这些数据时,突然发现,经常用统计的方式看 SDK 的相关数据,似 ...
- Abp VNext分表分库,拒绝手动,我们要happy coding
Abp VNext 分表分库 ShardingCore ShardingCore 易用.简单.高性能.普适性,是一款扩展针对efcore生态下的分表分库的扩展解决方案,支持efcore2+的所有版本, ...
- [敏捷软工团队博客]Beta阶段事后分析
设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件要解决的问题是:现在的软工课程的作业分布在博客园.GitHub上,没有一个集成多种功能的一体化 ...
- freemarker中使用String字符串作为模板
在日常开发中,我们有时候需要发送短信.邮件等通知,但是这些通知的内容通常都是动态的,而且可能会发生变动,为了程序的灵活性,我们通常会将通知的内容配置在页面上,然后后台通过渲染这些模板,来获取具体的内容 ...
- Linux 内核网桥源码分析
Linux网桥源码的实现 转自: Linux二层网络协议 Linux网桥源码的实现 1.调用 在src/net/core/dev.c的软中断函数static void net_rx_action(st ...
- DDTP 分布式数据传输协议白皮书
声明 本文非本人原创,主要参考文献[1]编写的阅读笔记.本博客仅发表在博客园,作者LightningStar,其他平台均为转载. 摘要 本白皮书对全球现有主要个人信息可携带权的实践模式进行梳理,分析其 ...
