【问题标题】:Is it a good practice to always join SQL tables?始终连接 SQL 表是一种好习惯吗?
【发布时间】:2017-01-24 07:07:38
【问题描述】:

我正在编写一个 Web 应用程序,使用 sequelize 作为我的 SQL 数据库 (PostgreSQL) 的 ORM。
我在 MongoDB 而不是 SQL 数据库方面有更多经验,并且我一直在寻找一种在一个请求中查询完整模型的方法。

假设我有一个UserComment 模型,而User 可能有很多Comments。
我将CommentUser 保存在不同的表中(它们也被分成不同的表)。
当我想查询User 时,是否应该使用join 创建查询以获取 cmets?
在每个查询上执行所有模型关系之间的完全连接是好还是坏的做法?

【问题讨论】:

  • 在表之间进行连接是完全正常的;这就是创建关系数据库的目的。您可以在连接列上添加索引以获得更好的性能。
  • 如果您使用的是 ORM,您认为您应该直接查询数据库吗?让 ORM 处理数据层的查询 - 利用 ORM 并让它完成它的工作。
  • 是的,我当然会利用 orm 并且不会自己编写,但我仍然需要告诉 orm 执行 join。

标签: sql mongodb postgresql join


【解决方案1】:

使用 JOINS,您可以通过一个查询从任意数量的表中准确获取所需的数据,使用您选择的任何搜索参数来过滤结果。 MySQL 还可以利用诸如索引之类的东西来最大化性能,而您的 API 代码则不能。

一般来说,执行多个查询并使用某种 API(例如 PHP)来过滤结果会给服务器带来更多开销。更多的数据必须在 MySQL 和 API 之间来回发送,更不用说 MySQL 是为优化性能而构建的,在处理每个开发人员的 API 代码时无法保证这一点。

所以在你的情况下,加入用户评论。

【讨论】:

    猜你喜欢
    • 2011-01-28
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 2019-03-06
    相关资源
    最近更新 更多