O SQLite otimiza uma consulta com várias condições AND na cláusula WHERE?
Nos bancos de dados SQL (eu uso Python + Sqlite), como garantir que, se tivermos 1 milhão de linhas, a consulta
SELECT * FROM mytable WHERE myfunction(description) < 500 AND column2 < 1000
[-----------------------------] [--------------]
high-CPU cost condition easy-to-test
requiring 100 µs per test condition
é otimizado para que a 1ª condição (caro por CPU)é testado apenas se a segunda condição fácil de testar já for verdadeira? (já que é lógicoAND
é preguiçosoAND
?)
Exemplo:
se a 1ª condição for sempre testada, seria necessário 1 milhão x 100 µs = 100 segundos!
se a segunda condição for testada primeiro, apenas 5000 itens serão pré-filtrados (no meu caso de uso) e, em seguida, a aplicação da primeira condição será muito rápida.
Nota:
column2 não é necessário um ID, pode ser outra coisa
no meu caso de uso,myfunction
envolve o cálculo da distância de Levenshtein