FreeSql 与 SqlSugar 性能测试(增EFCore测试结果)

这篇文章受你们邀请,与 SqlSugar 作一次简单的性能测试对比。主要针对插入、批量插入、批量更新、读取性能的测试;mysql

测试环境

  • .net core 2.2
  • FreeSql 0.3.17
  • sqlSugarCore 4.9.9.3git

  • sqlserver 14.00.1000 Express、mysql 5.6github

测试项目

以 console 程序,建立步骤:sql

一、dotnet new console数据库

二、dotnet add package FreeSqlsqlserver

三、dotnet add package sqlSugarCore性能

编码的过程

这个错误来自 sugar 建立数据库的时候,实体定义以下:测试


sugar的没有同步上来。编码

暂时先用 freesql 帮 sugar 建立了表。。。建立完后以下:.net

运行时又出现以下错误:

须要加一堆 IsIgnore

是的,还在报错,最终缘由是我传入的 songs 是 IEnumerable ,而后接受的参数类型正常应该是 Song[],但愿做者看到了能够改进。

以 SqlServer 做为目标库,测试结果

第一次:

第二次:

EFCore 也参与进来的测试:

uploading-image-353246.png

以 MySql 做为目标库,测试结果

EFCore 也参与进来的测试:

结束语

然而上面提到的批量更新,今天先到这吧。下次有兴致了再测试。

其余库我就不测试了,谢谢观看!请求献上宝贵的一星。

github:https://github.com/2881099/FreeSql

而后 针对测试的实体类,FreeSql 能够这样查询:

一对1、多对一的查询:

var t0 = fsql.Select<Tag>().Where(a => a.Parent.Parent.Name == "粤语").ToSql();

一对多的查询:

var t1 = fsql.Select<Tag>().Where(a => a.Tags.AsSelect().Any(t => t.Parent.Id == 10)).ToSql();

多对多的查询:

var t2 = fsql.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();

最终的测试代码:https://github.com/2881099/FreeSql/blob/master/Examples/orm_vs/Program.cs

相关文章
相关标签/搜索