SQL Join与没有Join的代码中的单独查询 - 性能

Mel*_*sus 13 sql performance join

我想知道这两个选项之间是否真的有性能提升:

选项1 :

  • 我使用连接执行SQL查询以选择所有用户及其排名.

选项2:

  • 我做一个SQL查询来选择所有用户
  • 我获取所有用户并执行另一个SQL查询以获取此用户的排名.

在代码中,选项二对我来说更容易实现.那只是因为我设计我的持久层的方式.

所以,我想知道对性能有什么影响.在我有什么限制之后我应该考虑采用选项1而不是选项2?

Mar*_*ter 13

一般来说,DB服务器在加入时总是比应用程序代码更快.请记住,对于每个联接,您必须使用网络往返进行额外查询.但是,如果您的第一个结果集很小并且索引调整得很好,则此模型可以正常工作.

如果你只是为了重新使用你的ORM解决方案,那么你可能正在打一场失败的战斗.我总是发现我需要只能用SQL生成的只读数据集,因此我现在将ORM用于每个对象的CRUD操作,并将常规SQL用于搜索,报告,聚合等.