做网站联系电话青岛制作网站的

张小明 2026/1/12 11:47:26
做网站联系电话,青岛制作网站的,西双版纳傣族自治州房价,深圳市光明区官网背景几个月前其实我已经注意到了一篇帖子《从30秒到30毫秒#xff1a;EF Core查询性能优化实战全记录》#xff0c;感兴趣的小伙伴可以自行网上收一下#xff0c;讲的是如何通过优化提高efcore的性能。我们对其进行简化#xff0c;简化部分需求#xff0c;来讲解本次主题EF Core查询性能优化实战全记录》感兴趣的小伙伴可以自行网上收一下讲的是如何通过优化提高efcore的性能。我们对其进行简化简化部分需求来讲解本次主题为什么easy-query这么强,为什么可以这么智能本次使用的是MYSQL 8本地环境 java8和efcore9实体关系如下用户每个用户有多篇帖子和多条评论评论每条评论属于一个用户并关联一篇帖子分类帖子按分类组织帖子每个帖子所属一个类目 并且有多个评论挑战需求查询过去7天在.NET分类下评论最多的5位用户每位用户返回用户ID用户名隐式Group一种更加智能的sql生成完美的融合了表达式的阅读性和性能在复杂子查询嵌套和多子查询下合并有种非常高的性能提升且表达式本身不需要任何变化是一种非常智能的表达式转变。先说结论框架耗时 easy-query普通子查询 efcore子查询 easy-query隐式Groupmysql8 11s 11s 2.7s创建实体点击查看实体代码通过easy-query的code-first生成数据库表并且生成初始化数据其中初始化数据为 9个类目16个用户 发布了15w个帖子并且一个评论100w条记录点击查看初始化代码查询数据库普通子查询LocalDateTime dateTime LocalDateTime.now().plusDays(-7);ListUser list entityQuery.queryable(User.class).where(u - {u.comments().any();}).orderBy(u - {u.comments().where(c - {c.createAt().isAfter(dateTime);c.post().category().name().eq(.NET);}).count().desc();}).limit(5).toList();最终生成的sql为SELECTt.id,t.usernameFROMt_user tWHEREEXISTS (SELECT1 FROM t_comment t1WHEREt1.user_id t.idLIMIT1)ORDER BY(SELECTCOUNT(*)FROMt_comment t2LEFT JOINt_post t3ON t3.id t2.post_idLEFT JOINt_category t4ON t4.id t3.category_idWHEREt2.user_id t.idAND t2.create_at 2025-10-19 22:28:18.469AND t4.name .NET) DESCLIMIT5平均耗时11秒左右efcore点击查看实体代码查询数据库var dateTime DateTime.Now.AddDays(-7);var users context.SetUser().AsNoTracking().Where(u u.Comments.Any()).OrderByDescending(u u.Comments.Count(c c.CreatedAt dateTime c.Post.Category.Name .NET)).Take(5).ToList();生成的sql如下Executed DbCommand (11,016ms) [Parameters[__dateTime_02025-10-19T22:32:06.710891008:00 (DbType DateTime), __p_15], CommandTypeText, CommandTimeout30]SELECT t.id, t.usernameFROM t_user AS tWHERE EXISTS (SELECT 1FROM t_comment AS t0WHERE t.id t0.user_id)ORDER BY (SELECT COUNT(*)FROM t_comment AS t1INNER JOIN t_post AS t2 ON t1.post_id t2.idINNER JOIN t_category AS t3 ON t2.category_id t3.idWHERE (t.id t1.user_id) AND ((t1.create_at __dateTime_0) AND (t3.name .NET))) DESCLIMIT __p_1平均耗时11秒从结果看两者都是性能相当的那么为什么本次的主题是暴打efcore呢接下来我为大家带来easy-query的究极子查询功能将子查询转成groupJoin也就是隐式查询的隐式Group可以说.net应该没有ORM做到了这个功能隐式Group修改easy-query查询添加一行配置是的你没听错就一行配置LocalDateTime dateTime LocalDateTime.now().plusDays(-7);ListUser list entityQuery.queryable(User.class).configure(s-s.getBehavior().add(EasyBehaviorEnum.ALL_SUB_QUERY_GROUP_JOIN)).where(u - {u.comments().any();}).orderBy(u - {u.comments().where(c - {c.createAt().isAfter(dateTime);c.post().category().name().eq(.NET);}).count().desc();}).limit(5).toList();生成的sql如下SELECTt.id,t.usernameFROMt_user tLEFT JOIN(SELECTt1.user_id AS userId, (COUNT(*) 0) AS __any2__, COUNT((CASEWHEN t1.create_at 2025-10-19 22:30:12.833AND t4.name .NETTHEN 1ELSE NULLEND)) AS __count3__ FROM t_comment t1LEFT JOINt_post t3ON t3.id t1.post_idLEFT JOINt_category t4ON t4.id t3.category_idGROUP BYt1.user_id) t2ON t2.userId t.idWHEREIFNULL(t2.__any2__, false) trueORDER BYIFNULL(t2.__count3__, 0) DESCLIMIT5平均耗时2.7秒 是的你妹看错仅仅只需要一行代码即可让子查询性能提升4-5倍这是什么概念这就是easy-query带来的最强子查询 隐式Group鱼和熊掌可以兼得eq真正的做到了将子查询优化到无敌的存在可以说目前市面上没有任何一款orm做到了如此智能的sql性能和可维护性真的可以在easy-query上做到兼得。具体eq的相关文档点击此处插曲我在看《从30秒到30毫秒EF Core查询性能优化实战全记录》这个文章的时候看到image这个表达式我随机在efcore上试了一下结果性能大跌眼镜要足足22秒也不知道原文是怎么测试的var dateTime DateTime.Now.AddDays(-7);var users context.SetUser().AsNoTracking().Where(u u.Comments.Any(c c.CreatedAt dateTime c.Post.Category.Name .NET)).Select(u new{u.Id,u.Username,CommentsCount u.Comments.Count(c c.CreatedAt dateTime c.Post.Category.Name .NET)
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

易企秀怎么做招聘网站超链接冬创网站建设培训中心

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个电商系统嵌入式数据库选择演示项目。模拟一个中小型电商平台的订单管理模块,分别使用H2、HSQL和Derby实现相同功能。要求展示:1) 数据库初始化配置代…

张小明 2025/12/24 11:33:06 网站建设

在线做头像的网站外贸商城wordpress

探寻正宗易学泰斗:当代哲学思想领军人物颜廷利教授起名案例赏析为什么国内外最伟大的新生婴幼儿宝宝的父母,都倾向于找国际上最厉害的哲学家易经泰斗颜廷利教授给自己的男孩子、女孩子取一个拥有思想杰出、灵魂卓越的名字,原因就是——在当今…

张小明 2025/12/24 11:33:05 网站建设

成都哪家公司做网站最好js调用wordpress文章

在当前网盘限速普遍存在的环境下,如何快速获取文件真实下载地址成为用户的核心需求。网盘直链下载助手作为一款基于JavaScript开发的免费开源工具,能够帮助用户轻松绕过繁琐的下载流程,直接获取八大主流网盘的真实下载链接。 【免费下载链接】…

张小明 2025/12/24 11:33:07 网站建设

平台网站制作如何导入wordpress主题

文档过滤检索阶段拆分为:检索前、检索时、检索后。 检索前 预检索阶段负责处理和优化用户的原始查询,以提高后续检索的质量。Spring AI提供了多种查询处理组件。Spring AI提供了多种查询处理组件。 查询转换-查询重写 当用户查询含糊不清或包含无关信息时…

张小明 2026/1/10 11:45:51 网站建设

山东住房和建设庭网站至高建设集团 网站

Linux信号机制详解 1. 信号概述 信号是一种软件中断,用于处理异步事件。这些事件的来源有两种,一种是系统外部,比如用户通过按下 Ctrl - C 产生中断字符;另一种是程序或内核内部活动,例如进程执行了除以零的代码。作为一种原始的进程间通信(IPC)形式,一个进程也可以…

张小明 2025/12/26 21:37:03 网站建设

湘潭新思维网站禁止wordpress保存修订版

这项由北京大学张文涛教授团队牵头,联合快手科技凌团队共同完成的研究发表于2025年12月的计算机视觉顶级会议论文集中。研究团队包括王雨然、曾博涵、童成卓等多位研究者,论文编号为arXiv:2512.12675v1。有兴趣深入了解技术细节的读者可以通过该编号查询…

张小明 2025/12/27 18:21:31 网站建设