É quase (há casos em que fazer uma varredura completa é realmente mais barato) sempre possível otimizar UMA consulta para evitar a varredura completa criando índices apropriados. No entanto, se você executar várias consultas na mesma tabela, há cenários em que algumas delas acabarão fazendo uma verificação completa ou você acabará com mais índices do que terá colunas em sua tabela :-)