JOIN查询与多个查询?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

JOIN查询比几个查询更快吗?(你运行主查询,然后根据主查询的结果运行许多其他SELECT)

我在问,因为加入它们会使我的应用程序的设计变得复杂

如果他们更快,任何人都可以粗略地估计多少?如果它是1.5倍,我不在乎,但如果它是10倍,我想我会这样做。

提问于
用户回答回答于

这太模糊了,无法给你一个与你的具体案例相关的答案。这取决于很多事情。但是,绝大多数情况下,如果你有正确的索引,并且你正确地进行了JOIN,那么做1次旅行通常会比几次更快。

用户回答回答于

对于内部连接,一个查询是有意义的,因为你只能得到匹配的行。对于左连接,多个查询要好得多......看看我做的以下基准:

  1. 带有5个连接的单个查询 查询:8.074508秒 结果大小:2268000
  2. 连续5次查询 合并查询时间:0.00262秒 结果大小:165(6 + 50 + 7 + 12 + 90)

.

请注意,在这两种情况下我们都得到相同的结果(6 x 50 x 7 x 12 x 90 = 2268000)

左连接使用指数更多的内存与冗余数据。

内存限制可能不会如此糟糕,如果你只做两个表的连接,但通常是三个或更多,并且它变得值得不同的查询。

作为一个便笺,我的MySQL服务器就在我的应用程序服务器旁边......所以连接时间可以忽略不计。如果你的连接时间在几秒钟内,那么也许会有好处

扫码关注云+社区