qual é a melhor prática na criação de um índice?
Exemplo 1:
createdd_at_indx (criado_at)
atualizado_em_indx (atualizado_em)
OU
exemplo 2:
date_indx (criado_em, atualizado_em)
qual é a melhor prática na criação de um índice?
Exemplo 1:
createdd_at_indx (criado_at)
atualizado_em_indx (atualizado_em)
OU
exemplo 2:
date_indx (criado_em, atualizado_em)
Referência, índices de várias colunas
Depende da consulta utilizada.
Por exemplo, o índice
date_indx (created_at, updated_at)
será usado nas seguintes consultas:E não será usado nas seguintes consultas:
A melhor prática para fazer índices é começar com as consultas . Ou seja, você não pode fazer um "bom" trabalho na construção de índices antes disso.
Coloque várias colunas no índice para casos em que
=
(ouIS NULL
) (se houver)IN
coluna testada (se houver)>
,BETWEEN
,LIKE 'foo%'
, etc) (se houver)É [principalmente] inútil ter dois intervalos testados em um índice -- o primeiro pode ser usado; o resto ignorado.
Em alguns casos, o Optimizer preferirá ignorar o
WHERE
e ir para oGROUP BY
e/ouORDER BY
.Não há problema em ter vários índices -- mas [geralmente] apenas um será usado por
SELECT
. Observação: subconsultas, tabelas derivadas e consultas unificadas são otimizadas separadamente.Mais: Index Cookbook
Depende da sua aplicação e das suas dúvidas. Genericamente falando, se você tiver a mesma consulta usando Created_At e Updated_At na cláusula Where, vá em frente com a opção 2. Se houver consultas separadas usando ambos separadamente, crie índices separados.