SqlSugar和Freesql 性能比较 .NET ORM

四种orm框架的对 

1、什么是ORM?

答:ORM(Object-relational mapping)即对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。也就是说,ORM是通过使用描述对象和数据库之间映射的元数据(映射文件信息),将程序中的对象自动持久化到关系数据库中。说白了就是将相应的实体映射到相应的数据库表,然后使用orm框架封装好的api进行数据库访问,减少了自己写数据库访问类的步骤。

img

2、ORM框架的优缺点是?

答:ORM框架的优点:(1)操作简单,提高开发效率。(2)支持面向对象封装。(3)可移植。(4)减少重复性代码

​ ORM框架的缺点:(1)处理多表联查之类的查询时,ORM的语法会变得很复杂。(2)执行性能较低(但现在有一些轻型ORM框架,性能接近原生SQL)。

2、四种框架的基本信息对比如下表:

框架/对比属性 SqlSugar Dos.ORM EFCodeFirst
支持数据库类型 MySql、SqlServer、Sqlite、Oracle 、 postgresql MySql、SqlServer、Sqlite、Oracle 等数据库 MySql、SqlServer、Sqlite、Oracle 、 postgresql
支持的平台版本 .net和net core .net和net core .net和net core
团队规模 公司性质 公司性质 微软
体积 895k(下载后package的大小) 607k(下载后package的大小) 17.8M
文档帮助 较全(install后,就可以直接使用了) 一般(但是很多细节的东西并没有告知用户,例如需要通过代码生成器生成的实体类才能与数据库进行映射) 较全(无论是微软官方还是百度谷歌,用的人比较多,遇到问题容易)
与数据库交互方式 支持dbfirst、codefirst 支持dbfirst 支持code first(当前使用的是code first,也可支持dbfirst)
学习成本 一般 较高(刚开始使用会遇到许多的bug,虽然网上都有解决方法,但是学习起来没前几种容易)

3、四种框架的耗时情况如下:

如下表格,展示的是四种ORM框架Crud的性能,其中,(1)增查删改都是循环5次,每次增删改1万条数据,查询是每次查询10万条数据,取5次的平均值;(2)批量增删改都是循环5次,每次增删改10万条数据,取5次平均值:

由上表可知,各种框架CRUD的性能如下(由快到慢):

(1)循环CRUD操作的性能如下:

​ 新增:SqlSugar>DOS.ORM

​ 删除:SqlSugar>DOS.ORM

​ 修改:SqlSugar>DOS.ORM

​ 查询:SqlSugar>DOS.ORMl

综上可知:SqlSugar框架的CRUD性能是最高的,其中EF除了查询比较快之外,删改所花费的时间都是其他三种框架的4~5倍,而新增就是20倍左右!

(2)循环批量CRUD的性能如下:

​ 批量新增:SqlSugar>DOS.ORM>EF

​ 批量修改:SqlSugar>EF>DOS.ORM

​ 批量删除:SqlSugar>EF

注解2:DOS.ORM批量删除超过2009条数据时就会报错,如下图:

综上,只有SqlSugar涵盖的方法比较多,而且速度也较快!

4、四种框架都支持哪些功能?

功能/框架 DOS.ORM EF SqlSugar
增删查改 支持 支持 支持
批量增删改 支持 支持 支持
事务、存储过程、日志 支持 支持 支持
lamdba、执行SQL 支持 支持 支持
linq 不支持 支持 不支持
多表查询、分组查询 支持 支持 支持
全局过滤器 不支持 支持 支持

答:四种框架都支持:

基本查询、多表查询、分组查询、批量增删改操作、存储过程、事务、执行SQL、日志等功能。

5、就个人使用而言,比较推荐哪个框架?

答:个人比较推荐SqlSugar,原因如下:

(1)只要下载了SqlSugar包后,就可以直接按照官网的例子进行编码,日志跟踪方面我认为是最简单已用的,且文档写得比较好、可由代码生成数据库,可以快速上手。

(2)DOS.ORM与SqlSugar差不多,但是由于我觉得SqlSugar日志跟踪方面做得比较好且可以由代码生成数据库,且DOS对批量操作的支持不是很好,只能批量新增(且没有返回值),不能批量删除、修改,所以我才选择SqlSugar:

(3)Dos.ORM是这三个框架里面最不好上手,***不能***直接自己创建类文件,而是需要下载官网推荐的***代码生成器***去生成相应的类,然后才能进行数据库的访问,否则插入删除等操作都会报错,所以就个人而言,不推荐用这个,认为学习成本比其他两个高。

(4)EF是重量级ORM框架,上面三种框架有的功能它都有,且有微软这个大厂在背后支撑,百度谷歌可以轻易搜索到大多数问题的解决方法,一开始,只要修改类结构,容易遇到与"dbo.Migrationary"相关的错误(这是需要了解codefirst数据库迁移方面的知识,可通过这边文章了解EF Code First Migrations数据库迁移_海蓝树的博客-CSDN博客),如果想用的功能不多,且不想框架太大的话,就还是推荐上面三种。

(5)四种框架中,SqlSugar进行CRUD的性能最高,而EF最慢。

你可能感兴趣的:(.NET工用类,数据库,.net,postgresql)