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

Todas as colunas da tabela devem ser indexadas ou não no banco de dados mysql?


A criação de um índice requer espaço em disco adicional e muitos índices podem causar problemas decorrentes dos limites de tamanho dos sistemas de arquivos, deve-se pensar cuidadosamente para selecionar os campos corretos a serem indexados.

Como os índices são usados ​​apenas para acelerar a busca por um campo correspondente nos registros, é lógico que os campos de indexação usados ​​apenas para saída seriam simplesmente um desperdício de espaço em disco e tempo de processamento ao fazer uma operação de inserção ou exclusão e, portanto, Deveria ser evitado. Também dada a natureza de uma pesquisa binária, a cardinalidade ou exclusividade dos dados é importante. A indexação em um campo com cardinalidade 2 dividiria os dados pela metade, enquanto uma cardinalidade de 1.000 retornaria aproximadamente 1.000 registros. Com uma cardinalidade tão baixa, a eficácia é reduzida a uma classificação linear, e o otimizador de consulta evitará usar o índice se a cardinalidade for maior que 30% do número de registro, efetivamente tornando o índice um desperdício de espaço.

Portanto, é melhor adicionar indexação no grupo de colunas.