gpt4 book ai didi

php - UNION 与 UNION ALL 的性能对比

转载 作者:太空宇宙 更新时间:2023-11-03 11:35:39 25 4
gpt4 key购买 nike

我正在通过 UNION 或 UNION ALL 从多个表中选择一列外键。

当重复无关紧要时,通常建议使用 UNION ALL 而不是 UNION 来解决性能问题。但是,在我的调用 PHP 脚本中,循环遍历和操作数据而不重复会更有效。

因此,我可以使用以下任一选项:

选项 1:

在数据库中使用UNION消除重复

选项 2:

在数据库中使用 UNION ALL 并使用 array_unique() 或其他类似函数消除我的 PHP 脚本中的数据。

我的假设是,在大多数情况下,选项 1 将是首选且更有效的方法,但是我没有任何证据支持该假设,并且不确定测试它的最佳方法,尤其是因为它可能取决于很多关于数据是什么。

我的假设在大多数情况下是否正确?如果是这样,为什么?如果不是,为什么不呢?

最佳答案

主要方面是 UNION 是 UNION DISTINCT 的快捷方式等等

UNION和UNION ALL的性能差异与
需要获得不同的结果,为此数据库引擎和查询优化器 在应用中肯定比基于PHP代码的过滤算法更有效和最高效。

此外,dictinct 操作可以受益于按功能分组的预优化

不仅如此,重复数据过滤一般都是基于有序数据虽然 select sql 函数在没有明确排序的情况下工作,因此,需要使用应用程序过滤数据会导致效率降低和查询时间更长。

通常数据库引擎比应用程序 PHP 函数代码更高效,因此选项 1 通常是更好的选择

关于php - UNION 与 UNION ALL 的性能对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46260599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com