MySQL IS NULL优化
时间:2019-11-20 08:52:31 来源:igfitidea点击:
MySQL对IS NULL运算符进行优化的方式与对equal(=)运算符进行优化的方式相同。
例如,MySQL使用IS NULL运算符搜索NULL时使用索引,如以下查询所示:
SELECT customerNumber, salesRepEmployeeNumber FROM customers WHERE salesRepEmployeeNumber IS NULL;
请参阅查询的说明:
EXPLAIN SELECT customerNumber, salesRepEmployeeNumber FROM customers WHERE salesRepEmployeeNumber IS NULL;
MySQL还可以针对组合col = value或col IS NULL进行优化,请参见以下示例:
EXPLAIN SELECT customerNumber, salesRepEmployeeNumber FROM customers WHERE salesRepEmployeeNumber = 1370 OR salesRepEmployeeNumber IS NULL;
在此示例中,当应用优化时,EXPLAIN显示ref_or_null。
如果您的键包含两列或更多列,则MySQL可以对任何键部分执行优化。
假设在表t1的列c1和c2上有一个索引,以下查询可以利用该索引:
SELECT * FROM t1 WHERE c1 IS NULL;