是否值得使用 ORM

霍蒂·维塔利

我正在使用 knex,项目的查询构建器,但是在使用连接时遇到了问题,您必须手动配对相关数据或执行单独的查询并绑定相关数据,所以我正在考虑使用 ORM 但我在某处听说它们速度较慢,并且在后台使用循环进行查询,我使用 nodejs 以便它可以阻塞线程,那么是否值得您自己使用 ORM 或更好的 mate join 数据?

米凯尔·莱皮斯托

您应该尝试使用 ORM 和不使用 ORM 使用普通 SQL。您会发现,在 99% [1] 的时间里,使用 ORM 会更好。很少有项目如此简单以至于使用 ORM 没有好处。

您听到的人是错误的,或者他们使用了糟糕的 ORM,或者他们没有正确使用他们选择的 ORM。好的 ORM 对其数据方法的实现进行了很好的调整,使用图形算法来找出最佳查询数量,以尽可能少的查询来获取请求的数据及其关系。它不会阻塞事件循环,除非您自己在查询生命周期钩子中完成了一些缓慢的阻塞代码。

我多次遇到过这种对 ORM 的误解,认为它们会限制您进行高效查询的能力,但并非所有 ORM 都如此。

Node.js 很少有轻量级的 ORM,它允许非常容易地完成常见的 ORMy 任务,但它们不会强迫您将 SQL 抽象出来。您仍然可以随时掌握 SQL 的全部功能,甚至可以随时使用原始查询,但与使用普通 SQL 相比,您可以更轻松地处理关系。

例如,您可以高效地读取/写入嵌套的 JSON 结构,并使用单行轻松填充多个表并从数据库读取嵌套数据,而无需找出优化所需查询数量以获取相关数据和构建嵌套数据的图形算法从平面查询结果。

最后,如果您不使用任何 ORM 和一组自定义帮助程序,其他人将更难进入该代码库,因为它将充满自定义的纯 SQL + 各种帮助程序。

免责声明:我有偏见(并且知道我在说什么),因为过去几年我一直在维护 knex 查询构建器,并且我参与了我可以推荐的唯一轻量级 Node.js ORM 的开发:反对.js

[1] 斯泰森-哈里森 1987

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Dapper ORM检查记录是否存在

来自分类Dev

在Spot ORM中使用with()

来自分类Dev

使用口才的ORM

来自分类Dev

ORM'or_where'使用

来自分类Dev

Symfony是否有ORM的接口?

来自分类Dev

Android-是否值得使用ViewStub?

来自分类Dev

是否值得删除未使用的 CSS?

来自分类Dev

使用Django ORM添加列

来自分类Dev

使用ORM时,小数与整数

来自分类Dev

使用php写入django ORM

来自分类Dev

使用 Eloquemt ORM 管理关系

来自分类Dev

使用 SQLAlchemy ORM 添加记录

来自分类Dev

是否可以使用django ORM对汇总查询进行GROUP BY?

来自分类Dev

是否可以将Laravel Eloquent ORM与API结合使用

来自分类Dev

是否需要在ORM组件中使用吸气剂功能?

来自分类Dev

是否可以使用django ORM对汇总查询进行GROUP BY?

来自分类Dev

ORM性能:greenDAO是否比ORMLite快?

来自分类Dev

Playframework(Ebean ORM)是否支持托管实体

来自分类Dev

Django ORM:是否可以注入子查询?

来自分类Dev

查询IQueryable是否与ORM完全分离?

来自分类Dev

Waterline ORM 线程在设计上是否安全?

来自分类Dev

delphi-orm 是否支持枚举类型?

来自分类Dev

为接口和实现使用单独的命名空间是否值得?

来自分类Dev

是否值得使用多个Web跟踪器?

来自分类Dev

将IPython与scipy的eig并行使用是否值得?

来自分类Dev

C ++-是否值得在Windows上通过MSVC使用GCC?

来自分类Dev

C ++-是否值得在Windows上通过MSVC使用GCC?

来自分类Dev

MatLab是否值得购买?

来自分类Dev

转到SimpleMembership是否值得