gpt4 book ai didi

sql - 将 SQL 选择拆分为多个查询是否更快?

转载 作者:行者123 更新时间:2023-12-04 02:40:21 25 4
gpt4 key购买 nike

一般来说,如果我需要从具有大量记录的单个表中检索信息,那么这样做是因为多个查询受主键限制并并行执行,还是作为一个大选择来执行更好?

例如。如果我有下表,ERRORS,至少有 500 万行:

ERROR_NUM ERROR_CODE CREATION_DATE STATE ...
1 55 09.20.2013 DE
2 23 09.21.2013 加利福尼亚州
3 55 09.21.2013 米
4 24 09.22.2013 德国
...
5000000 67 11.18.2013 纽约

如果我需要获取诸如每天每个状态的错误之类的信息,最好只做一个
SELECT what_i_need FROM 错误,或者我应该把它分成:

SELECT what_i_need FROM errors WHERE error_num BETWEEN 1 AND 100000
SELECT what_i_need FROM errors WHERE error_num BETWEEN 100001 and 200000
...等等

然后在检索到数据后以编程方式组合?

最佳答案

使用单个 SELECT语句,确保表被正确索引并在数据库级别使用正确的分组运算符。索引和分组需要相互匹配 - 根据实际查询,DBMS 可能能够利用索引的巨大优势。一如既往,测量,测量,再测量。使用一组真实的测试数据(不仅大小相同,而且值分布相同!)并让系统在执行查询时编写 SQL 跟踪。然后分析结果,看查询是否可以优化。尝试“水平”拆分查询通常不会加快速度,而且可能会使事情变得更糟,因为并行作业可能会相互“阻塞”,从而造成巨大的 I/O pig 。

关于sql - 将 SQL 选择拆分为多个查询是否更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20047833/

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