运算符IS NULL
与函数ISNULL()
之间的效果是否存在差异?
答案 0 :(得分:14)
This thread类似,但不完全在MySQL上。根据那里显示的测试:
IS NULL
效率更高,因为它不需要扫描。
Seek通常比扫描更快,因为它只包含合格记录,而scan包括每一行。我们会更详细地解释here。
另一个区别(虽然它不是性能)是它们的否定语法:
IS NOT NULL /* using NOT operator */
! ISNULL() /* using exclamation mark */
答案 1 :(得分:9)
查看MySQL手册,它们似乎确实是同义词。
即使它们不是,我也倾向于相信查询优化器能够选择最佳解决方案。