【发布时间】:2017-09-17 04:18:31
【问题描述】:
我正在通过 UNION 或 UNION ALL 从多个表中选择一列外键。
当重复无关紧要时,通常建议使用 UNION ALL 而不是 UNION 来解决性能问题。但是,在我的调用 PHP 脚本中,循环和操作数据而不重复会更有效。
所以,我可以使用以下任一选项:
选项 1:
在数据库中使用UNION来消除重复
选项 2:
在数据库中使用 UNION ALL 并使用 array_unique() 或其他类似函数消除我的 PHP 脚本中的数据。
我的假设是,在大多数情况下,选项 1 将是首选且更有效的方法,但是我没有什么可以支持该假设,并且不确定测试它的最佳方法,尤其是因为它可能在很大程度上取决于关于数据是什么。
我的假设在大多数情况下是否正确?如果是这样,为什么?如果没有,为什么不呢?
【问题讨论】:
-
测试这两个选项,你会看到。
-
答案是视情况而定。测试两者以找出答案。
-
@TimBiegeleisen 您将此链接为重复项,但是,该页面上没有任何内容可以回答我的问题。它只是重申了我在问题中已经说过的内容。
-
@kojow7 我不同意,如果您在两个投票率最高的答案下真实所有 cmets,您将得到您正在寻找的答案。
-
@TimBiegeleisen 实际上,如果您阅读了两个投票最多的答案下的所有 cmets,您会看到我大约一个小时前在那里发表了评论。我确实阅读了该帖子上的 cmets 和其他一些内容,但找不到对我的问题满意的答案。因此,我为什么在这里问一个。
标签: php mysql performance union union-all