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

mysql muitos índices?


Recuperação de dados -- instruções SELECT.

Manipulação de dados -- instruções INSERT, UPDATE, DELETE.

Se você sentir que deseja obter um melhor desempenho de recuperação de dados.

Em tabelas que verão manipulação de dados pesada - inserção, atualização...

As consultas precisam abordar a ordem das colunas ao lidar com um índice de cobertura (um índice em mais de uma coluna), da esquerda para a direita na definição da coluna de índice. A ordem das colunas na instrução não importa, apenas a das colunas 1, 2 e 3 - uma instrução precisa ter uma referência à coluna 1 antes que o índice possa ser usado. Se houver apenas uma referência à coluna 2 ou 3, o índice de cobertura para 1/2/3 não poderá ser usado.

No MySQL, apenas um índice pode ser usado por SELECT/instrução na consulta (subconsultas/etc são vistas como uma instrução separada). E há um limite para a quantidade de espaço por tabela que o MySQL permite. Além disso, executar uma função em uma coluna indexada torna o índice inútil - IE:
WHERE DATE(datetime_column) = ...