Se houver índice para uma coluna, isso acelerará a pesquisa se a condição for ... WHERE column IS NULL
? Na verdade, é um índice composto em 2 colunas e a segunda coluna pode ser NULL ( WHERE col1 = X AND col2 IS NULL
).
relate perguntas
-
Existe um ganho de desempenho ao manipular dados com procedimentos armazenados em vez de alimentá-los em funções após a recuperação?
-
Como você ajusta o MySQL para uma carga de trabalho pesada do InnoDB?
-
Como determinar se um Índice é necessário ou necessário
-
Onde posso encontrar o log lento do mysql?
-
Como posso otimizar um mysqldump de um banco de dados grande?
Resposta curta: pode.
Resposta longa:
IS NULL
otimiza como= constant
. (IS NOT NULL
não.)Há muitos motivos pelos quais o otimizador pode evitar o índice e fazer uma varredura na tabela, descartando linhas que não correspondem.
Para um índice de coluna única em que a coluna é testada
NULL
ou uma constante, o Otimizador geralmente ignorará o índice se mais de 20% da tabela tiver esse valor.Para um índice composto (e todas as colunas são testadas
NULL
ou uma constante, o Otimizador provavelmente usará o índice.Use
EXPLAIN SELECT
para ver seINDEX
é provável que seja usado.