如果知道只有两个值可以候选列的结果,
ifnull(a, b) as a_or_b_1
和
coalesce(a, b) as a_or_b_2
将给出相同的结果。但是哪个更快?搜索时,我发现了这篇文章,说 ifnull 更快。但这是我发现的唯一文章。有什么看法吗?
提前致谢 :)
我的观点是您应该对使用情况进行基准测试。
我怀疑会有很大的不同。请记住,虽然一个基准可能暗示一个基准稍好一些,但随着时间的推移数据变化可能会改变结果。
还要注意,COALESCE自1992年以来就是标准SQL的一部分-我不确定IFNULL是否在任何标准中。
Adam Machanic有一篇不错的文章,介绍了对等效方案进行基准测试- 性能:ISNULL与COALESCE (在SQL Server中)。请注意有关获得有效测试的一些条件。