在理论(或任何ORM )中,执行delete/update操作的最简单方法是选择这样的实体,然后删除代码中的实体或更新单个属性,最后将更改持久化到数据库。
这是大多数ORM框架中执行delete/update操作的原生方式。它非常方便,因为它获得了SQL语句的rids。但是,与QueryBuilder/SQL语言相比,这里意味着两个sql语句,首先是SELECT sql,然后是DELETE/UPDATE SQL。
我在这里的问题是,为了方便和方便维护,是否值得遵循ORM模式而忽略性能的权衡?
发布于 2018-05-28 10:44:18
我在这里的问题是,为了方便和方便维护,是否值得遵循ORM模式而忽略性能的权衡?
这主要取决于以下几点:
以防“1”的答案。就是“不”,别想太多了,坚持你的ORM。优化“以防万一”会导致过度设计,被称为“过早优化”。
如果"1“的答案是”是“,那么"2”应该总是值得一查的,确保您很好地理解了ORM的功能,并尝试了可能的方法。尝试谷歌搜索“性能优化”,你会得到大量的结果,每一个流行的ORM。
如果"2“没有帮助,而且耦合到特定的SQL方言对您来说也不是什么大问题,至少在代码的某些受限区域,那么继续手工编写查询,这样可以帮助您达到性能要求。
老实说,ORM技术对于它是否真的有用,或者它是否是一种反模式,仍然是有争议的话题。您可以在网上找到很多文章或文章(如这个9岁的孩子),讨论ORMs与“原生SQL编程”的利弊。许多反对ORM的论点都建立在您已经做过的观察上,即手动优化查询比配置ORM生成优化查询容易。
发布于 2018-05-28 10:24:05
您应该将ORM隐藏在存储库后面。
这允许您在需要时优化诸如批量更新自定义SQL之类的内容。
https://softwareengineering.stackexchange.com/questions/371674
复制相似问题