O MySQL pode fazer a mesma otimização em column IS
        NULL que ele pode com column =
        constant_value. Por exemplos, o MySQL pode usar
        índices e faixas para buscar por NULL com
        IS NULL.
      
SELECT * FROM table_name WHERE key_col IS NULL; SELECT * FROM table_name WHERE key_col <=> NULL; SELECT * FROM table_name WHERE key_col=# OR key_col=# OR key_col IS NULL
        Se você usa column_name IS NULL em um
        NOT NULL em uma cláusula WHERE na tabela que
        não é usada no OUTER JOIN, esta espressão
        será otimizada de qualquer forma.
      
        O MySQL 4.1. pode adicionalmente otimizar a combinação
        column = expr AND column IS NULL, uma forma
        que é comum em sub queries resolvidas.
        EXPLAIN mostrará
        ref_or_null quando esta otimização é
        usada.
      
        Esta otimização pode tratar um IS NULL para
        qualquer parte da chave.
      
Alguns exemplos de consultas que são otimizadas (assumindo chave em t2 (a,b)):
SELECT * FROM t1 WHERE t1.a=expr OR t1.a IS NULL; SELECT * FROM t1,t2 WHERE t1.a=t2.a OR t2.a IS NULL; SELECT * FROM t1,t2 WHERE (t1.a=t2.a OR t2.a IS NULL) AND t2.b=t1.b; SELECT * FROM t1,t2 WHERE t1.a=t2.a AND (t2.b=t1.b OR t2.b IS NULL); SELECT * FROM t1,t2 WHERE (t1.a=t2.a AND t2.a IS NULL AND ...) OR (t1.a=t2.a AND t2.a IS NULL AND ...);
        ref_or_null funciona fazendo primeiro uma
        leitura na chave indicada e depois disto uma busca separada por
        linhas com chave NULL.
      
        Note que a otimização só pode tratar um nível IS
        NULL.
      
SELECT * FROM t1,t2 where (t1.a=t2.a AND t2.a IS NULL) OR (t1.b=t2.b AND t2.b IS NULL);
        No caso acima o MySQL só usará busca de chave na parte
        (t1.a=t2.a AND t2.a IS NULL) e não poderá
        usar a parte da chave em b.
      
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

