sql >> Base de Datos >  >> RDS >> Mysql

¿Puede la cardinalidad diferir para los índices duplicados en mysql?

La cardinalidad en mysql es una estimación y mysql basa su estimación en las estadísticas de uso de la tabla:

Puede leer más sobre las estadísticas recopiladas para los motores de tablas myisam e innodb en la documentación de mysql e innodb y cómo configurarlas:

Todas las estadísticas se almacenan en la tabla de ESTADÍSTICAS dentro de information_schema.

Los índices, cuya cardinalidad estimada está más cerca de su cardinalidad exacta (número de valores distintos dentro del campo) se crearon hace más tiempo, por lo tanto, mysql recopiló más estadísticas para ellos y su estimación es más precisa. Si ejecuta analyse table en esta tabla en particular, probablemente las cardinalidades de los índices duplicados estarán mucho más cerca entre sí que ahora.

La gran pregunta es, ¿por qué tienes índices duplicados?