Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Quais são os maiores benefícios de usar INDEXES no mysql?


Resposta curta:
Os índices aceleram SELECT 's e reduza a velocidade de INSERT 's.

Normalmente é melhor ter índices, porque eles aceleram select mais do que desaceleram insert .

Em um UPDATE o índice pode acelerar as coisas para cima se um campo indexado for usado no WHERE cláusula e desacelerar as coisas se você update um dos campos indexados.

Como você sabe quando usar um índice

Adicionar EXPLAIN na frente de seu SELECT declaração.
Assim:
EXPLAIN SELECT * FROM table1 
WHERE unindexfield1 > unindexedfield2 
ORDER BY unindexedfield3

Mostrará quanto trabalho o MySQL terá que fazer em cada um dos campos não indexados.
Usando essa informação você pode decidir se vale a pena adicionar índices ou não.

Explique também pode dizer se é melhor descartar e indexar
EXPLAIN SELECT * FROM table1 
WHERE indexedfield1 > indexedfield2 
ORDER BY indexedfield3

Se poucas linhas forem selecionadas, ou o MySQL decidiu ignorar o índice (faz isso de tempos em tempos) então você também pode descartar o índice, porque é desacelerando seu insert s, mas não acelerando seu select 's.

Então, novamente, também pode ser que sua instrução select não seja inteligente o suficiente.
(Desculpe a complexidade na resposta, eu estava tentando mantê-la simples, mas falhei).

Link:
índices MySQL - o que são as melhores práticas?