84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
Diese 24 aufeinanderfolgenden Linien sind ähnlich, aber die Bedingungen sind unterschiedlich, z. B. 9 Uhr bis 10 Uhr, 10 Uhr bis 11 Uhr
“显然,使用 UNION ALL 的时候,只是单纯的把各个查询组合到一起而不会去判断数据是否重复。因此,当确定查询结果中不会有重复数据或者不需要去掉重复数据的时候,应当使用 UNION ALL 以提高查询效率。”
为什么不用OR来连接这些条件呢?比如:
OR
SELECT ... WHERE hour BETWEEN (9, 11) OR hour BETWEEN (13, 15)
对数据库来说24次请求肯定比一次要更消耗资源(多次验证解析+网络传输),并且如果你的时间是连续的话可以合并,最差的情况时间不连续union all更好,当然前提是时间字段有索引,不建议换成or,因为or会增加解析且当时间范围过多时会有全表扫描风险,而union all只需要将结果集合并即可
“显然,使用 UNION ALL 的时候,只是单纯的把各个查询组合到一起而不会去判断数据是否重复。因此,当确定查询结果中不会有重复数据或者不需要去掉重复数据的时候,应当使用 UNION ALL 以提高查询效率。”
为什么不用
OR
来连接这些条件呢?比如:对数据库来说24次请求肯定比一次要更消耗资源(多次验证解析+网络传输),并且如果你的时间是连续的话可以合并,最差的情况时间不连续union all更好,当然前提是时间字段有索引,不建议换成or,因为or会增加解析且当时间范围过多时会有全表扫描风险,而union all只需要将结果集合并即可