Mysql中"IS NULL"和"ISNULL()"之间的差异

Wil*_*iam 18 mysql performance null

操作员IS NULL和功能之间的性能有何不同ISNULL()

Geo*_*Geo 14

这个线程类似,但不完全在MySQL上.根据那里显示的测试:

IS NULL 更高效,因为它不需要扫描.

Seek通常比扫描更快,因为它只包括合格记录,而scan包括每一行.这里将更详细地解释.

另一个区别(尽管它不是性能)是它们的否定语法:

IS NOT NULL  /* using NOT operator */
! ISNULL()  /* using exclamation mark */
Run Code Online (Sandbox Code Playgroud)

  • 新手警告; 如果列被索引,这只会更有效:) (3认同)
  • 你所指的线程是关于MSSQL的,其中`isnull`与MySQL`isnull`不同,但与MySQL`ifnull`相同.所以整体答案是不正确和误导的. (2认同)

Pek*_*ica 9

查看MySQL手册,它们似乎真的是同义词.

即使它们不是,我也倾向于相信查询优化器能够选择最佳解决方案.

  • 咦?在我的理解中,"分享特殊行为"只是意味着它们很奇怪,但它们以同样的方式变得奇怪*. (5认同)
  • 我也是这样说的,但是ISNULL的文档说,IS NULL的一些特殊行为让我感到害怕. (2认同)