2011-01-20 199 views
11

如果它知道,只有兩個值候選人列的結果,mysql,ifnull vs coalesce,哪個更快?

ifnull(a, b) as a_or_b_1 

coalesce(a, b) as a_or_b_2 

會給出相同的結果。但哪個更快?當搜索時我發現this article,其中說ifnull更快。但它是我發現的唯一文章。對此有何看法?

在此先感謝:)

+2

呃,你確定它是你查詢中最慢的**部分嗎? :-) – zerkms 2011-01-20 13:53:05

回答

12

我的觀點是,你應該基準您的使用。

我懷疑會有太大的區別。 請記住,雖然單個基準可能表明稍好,但數據隨時間的變化可能會改變該結果。

另請注意,COALESCE自1992年以來一直是標準SQL的一部分 - 我不確定IFNULL是否在任何標準中。

Adam Machanic提供了一篇關於基準化等效場景的好文章 - Performance: ISNULL vs. COALESCE (in SQL Server)。請注意獲得有效測試的一些附帶條件。