Differences between “IS NULL” and “ISNULL()” in My

2019-02-11 18:34发布

问题:

Is there any difference in performance between the operator IS NULL and the function ISNULL()?

回答1:

Looking into the MySQL manual, they seem to be synonyms really.

  • MySQL manual on IS NULL

  • MySQL manual on ISNULL()

and even if they aren't, I would tend to trust the query optimizer to pick the best solution.



回答2:

This thread is similar, though not exactly on MySQL. According to the test shown there:

IS NULL is more efficient as it doesn't require a scan.

Seek is generally faster than a scan as it only includes qualifying records, while scan includes every row. It is explained in more detail here.

Another difference (though it's not performance) is their negation syntax:

IS NOT NULL  /* using NOT operator */
! ISNULL()  /* using exclamation mark */