这两个MySQL函数做同样的事情:
IFNULL(column_name, 'test') = 'test'或
NULLIF(column_name, 'test') IS NULL哪一个更有效率?
发布于 2013-04-09 07:55:48
它们的效率都是一样的--函数的开销几乎是一样的。
但这比这两种方法都更有效:
(column_name is null
or column_name = 'test')因为函数不需要被调用。
您可能会发现,将更常见的测试放在第一位可以提高性能。
对于这样的问题,发现相对性能的最简单、更可靠的方法是尝试它们并比较查询时间。确保您有生产大小和实际价值的数据集,以便测试是公平的。
发布于 2015-07-16 23:00:43
NULLIF和IFNULL的用途不同,因此性能比较没有任何意义。
如果表达式具有特定值,则使用NULLIF返回null;如果表达式为null,则使用IFNULL返回text。
示例:
SELECT IFNULL(field,'empty') from table1;因为null对终端用户没有多大意义。
insert into table1 (field) values (nullif(field,'empty'));因为null在数据库中有特殊含义。
发布于 2016-07-07 00:27:21
它们用于不同的目的,性能比较没有任何意义。
select if(a,b,c); # a ? b : c # if a!=0 and a is not null then b else c
select ifnull(a,b); # a ? a : b # if a is not null then a else b
select nullif(a,b); # a=b ? null : a # if a=b then null else ahttp://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html
https://stackoverflow.com/questions/15891025
复制相似问题