mysql,ifnull vs coalesce,哪个更快?

时间:2011-01-20 13:46:49

标签: mysql query-optimization

如果知道列的结果只有两个候选值,

ifnull(a, b) as a_or_b_1

coalesce(a, b) as a_or_b_2

会给出相同的结果。但哪个更快?在搜索时我发现this article,其中 ifnull 更快。但这是我找到的唯一一篇文章。对此有何看法?

提前感谢:)

1 个答案:

答案 0 :(得分:13)

我的观点是你应该根据你的用法进行基准测试。

我怀疑会有太大的不同。 请记住,虽然单个基准测试可能表明一个稍微好一点,但随着时间的推移,数据的变化可能会改变这一结果。

另请注意,COALESCE自1992年以来一直是标准SQL的一部分 - 我不确定IFNULL是否符合任何标准。

Adam Machanic撰写了一篇关于对等效场景进行基准测试的好文章 - Performance: ISNULL vs. COALESCE (in SQL Server)。请注意获得有效测试的一些附带条件。