Различия между "IS NULL" и "ISNULL ()" в Mysql - PullRequest
18 голосов
/ 20 августа 2010

Есть ли разница в производительности между оператором IS NULL и функцией ISNULL()?

Ответы [ 2 ]

14 голосов
/ 09 июля 2013

Этот поток похож, но не совсем на MySQL. Согласно тесту, показанному там:

IS NULL более эффективен, поскольку не требует сканирования.

Поиск, как правило, выполняется быстрее, чем сканирование, поскольку оно включает только соответствующие записи, в то время как сканирование включает каждую строку. Это объяснено более подробно здесь .

Другое отличие (хотя это и не производительность) заключается в их синтаксисе отрицания:

IS NOT NULL  /* using NOT operator */
! ISNULL()  /* using exclamation mark */
9 голосов
/ 20 августа 2010

Глядя в руководство по MySQL, они кажутся действительно синонимами.

и даже если это не так, я бы склонялся к тому, чтобы оптимизатор запросов выбрал лучшее решение.

...