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.
|
|
|