首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行删除/更新的对象关系映射的最佳实践

执行删除/更新的对象关系映射的最佳实践
EN

Software Engineering用户
提问于 2018-05-28 09:11:12
回答 2查看 96关注 0票数 0

在理论(或任何ORM )中,执行delete/update操作的最简单方法是选择这样的实体,然后删除代码中的实体或更新单个属性,最后将更改持久化到数据库。

这是大多数ORM框架中执行delete/update操作的原生方式。它非常方便,因为它获得了SQL语句的rids。但是,与QueryBuilder/SQL语言相比,这里意味着两个sql语句,首先是SELECT sql,然后是DELETE/UPDATE SQL。

我在这里的问题是,为了方便和方便维护,是否值得遵循ORM模式而忽略性能的权衡?

EN

回答 2

Software Engineering用户

发布于 2018-05-28 10:44:18

我在这里的问题是,为了方便和方便维护,是否值得遵循ORM模式而忽略性能的权衡?

这主要取决于以下几点:

  1. 您的应用程序是否存在可度量的性能问题?
  2. 您的ORM是否提供了进一步的优化功能?
  3. 您使用ORM只是为了避免手动编写SQL,还是使用它将应用程序与特定的DB供应商(以及它是SQL方言)解耦?

以防“1”的答案。就是“不”,别想太多了,坚持你的ORM。优化“以防万一”会导致过度设计,被称为“过早优化”。

如果"1“的答案是”是“,那么"2”应该总是值得一查的,确保您很好地理解了ORM的功能,并尝试了可能的方法。尝试谷歌搜索“性能优化”,你会得到大量的结果,每一个流行的ORM。

如果"2“没有帮助,而且耦合到特定的SQL方言对您来说也不是什么大问题,至少在代码的某些受限区域,那么继续手工编写查询,这样可以帮助您达到性能要求。

老实说,ORM技术对于它是否真的有用,或者它是否是一种反模式,仍然是有争议的话题。您可以在网上找到很多文章或文章(如这个9岁的孩子),讨论ORMs与“原生SQL编程”的利弊。许多反对ORM的论点都建立在您已经做过的观察上,即手动优化查询比配置ORM生成优化查询容易。

票数 4
EN

Software Engineering用户

发布于 2018-05-28 10:24:05

您应该将ORM隐藏在存储库后面。

这允许您在需要时优化诸如批量更新自定义SQL之类的内容。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/371674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档