Sintaxe SQL eficiente

Utilize JOIN (na cláusula FROM ) para incluir uma tabela em uma consulta em vez de uma subconsulta na cláusula WHERE . Essa dica aplica-se mesmo se você precisar apenas de dados da tabela para filtrar; não para o conjunto de resultados.

Colocar múltiplas tabelas em uma cláusula FROM desempenha melhor que utilizar uma subconsulta em uma cláusula WHERE .

Evite instruções SQL que não possam tirar proveito de índices. Essas instruções incluem o uso de funções agregadas em uma subconsulta, uma instrução UNION em uma subconsulta ou uma cláusula ORDER BY com uma instrução UNION .

Um índice pode aumentar muito a velocidade do processamento da consulta SELECT . No entanto, a sintaxe SQL certa impede que o banco de dados utilize índices, forçando-o a utilizar os dados reais para buscar ou ordenar operações.

Considere evitar o operador LIKE , especialmente com um caractere curinga inicial como em LIKE('%XXXX%') .

Uma vez que a operação LIKE suporta o uso de busca com caractere curinga, seu desempenho é inferior ao de comparações que usam correspondências exatas. Em particular, se você iniciar a sequência de caracteres de busca com um caractere curinga, o banco de dados não poderá usar os índices, de nenhuma maneira, na busca. Em vez disso, o banco de dados deverá buscar o texto completo de cada linha na tabela.

Considere evitar o operador IN . Se os valores possíveis forem conhecidos de antemão, a operação IN poderá ser escrita usando AND ou OR para uma execução mais rápida.

A segunda das duas instruções seguintes é executada mais rapidamente. Isto é mais rápido porque usa expressões de igualdade simples combinadas com OR , em vez de instruções IN() ou NOT IN() :

-- Slower 
SELECT lastName, firstName, salary 
FROM main.employees 
WHERE salary IN (2000, 2500) 
     
-- Faster 
SELECT lastName, firstName, salary 
FROM main.employees 
WHERE salary = 2000 
    OR salary = 2500
Considere formas alternativas de uma instrução SQL para melhorar o desempenho.

Como foi demonstrado nos exemplos anteriores, a maneira em que uma instrução SQL é escrita também pode afetar o desempenho do banco de dados. Com frequência, existem diversas maneiras de criar uma instrução SQL SELECT para recuperar um conjunto de resultados específico. Em alguns casos, uma abordagem funciona com rapidez notoriamente maior do que a outra. Além das sugestões anteriores, você pode saber mais sobre diferentes instruções SQL e seu desempenho consultando os recursos dedicados na linguagem SQL.