mysql, ifnull vs coalesce, что быстрее? - PullRequest
13 голосов
/ 20 января 2011

, если известно, что для результата столбца есть только два значения,

ifnull(a, b) as a_or_b_1

и

coalesce(a, b) as a_or_b_2

даст тот же результат. но что быстрее? при поиске я нашел эту статью , в которой говорится, что ifnull быстрее но это была единственная статья, которую я нашел. какие-либо взгляды на это?

спасибо заранее:)

1 Ответ

13 голосов
/ 20 января 2011

Мое мнение таково, что вы должны проводить тесты для своего использования.

Я сомневаюсь, что будет большая разница.Имейте в виду, что хотя один и тот же бенчмарк может предположить, что он немного лучше, изменение данных во времени может изменить этот результат.

Также обратите внимание, что COALESCE является частью стандартного SQL с 1992 года - я неуверен, что IFNULL соответствует любому стандарту.

Есть хорошая статья Адама Маханича о сравнительном анализе эквивалентного сценария - Производительность: ISNULL и COALESCE (в SQL Server) ,Обратите внимание на некоторые условия получения действительного теста.

...