2011-01-20 101 views
11
候補者への唯一の二つの値は、列の結果のためにそこにあることが知られていた場合

mysql、ifnullとcoalesceはどちらが速いのですか?

ifnull(a, b) as a_or_b_1 

coalesce(a, b) as a_or_b_2 

は、同じ結果が得られます。しかし、それはより速いですか?検索したときに と書かれたthis articleが見つかった場合、はより高速です。それは私が見つけた唯一の記事でした。これについての任意のビュー?

ありがとうございます。:)

+2

あなたはあなたの質問の中で最も遅い**の部分でしょうか? :-) – zerkms

+0

追跡サイクル:( – davogotland

答えて

12

私の見解では、使用するためのベンチマークが必要です。

多くの違いがあるのでしょうか。 単一のベンチマークでは、あるベンチマークよりも若干優れていることが示唆されているかもしれませんが、データの変化が時間の経過と共に変化する可能性があることに注意してください。

また、1992年以来、COALESCEは標準SQLに含まれていることにも注意してください.IFNULLはまだ標準にはありません。

Adam Machanicによる同等のシナリオのベンチマークについては、Performance: ISNULL vs. COALESCE (in SQL Server)という素晴らしい記事があります。有効なテストを受けるための条件の一部に注意してください。

関連する問題