假设我有以下查询,仅对3列感兴趣:
persistentVolumeReclaimPolicy: Delete
基本上,它将检索我感兴趣的国家/地区的城市。否则,将返回null。
我的问题是,如果我有大量记录,查询是否比此查询快:
SELECT CustomerID, Country, IF(Country="Mexico", City, null) City FROM Customers;
换句话说,使用if语句约束值是否会使查询变慢?
答案 0 :(得分:3)
您的第一个查询必须执行其他条件逻辑。这需要更多的处理。另一方面,由于NULL
值,返回的数据量略小,因此这可能会有所平衡。
但是,您正在从表中返回大量数据,而对性能的真正限制是读取数据。
因此,两者之间的差异应该很小。
另一方面,如果您只对一个国家感兴趣,请使用WHERE
:
SELECT CustomerID, Country, City
FROM Customers c
WHERE Country = 'Mexico';
这返回的数据量较小,因此应该更快。
答案 1 :(得分:1)
差别很小。
查询的费用通常基于I / O块访问和行数。额外的计算列几乎没有任何区别。