Mysql
 sql >> Base de données >  >> RDS >> Mysql

La cardinalité peut-elle différer pour les index en double dans mysql ?

La cardinalité dans mysql est une estimation , et mysql base son estimation sur les statistiques d'utilisation de la table :

Vous pouvez en savoir plus sur les statistiques collectées pour les moteurs de table myisam et innodb dans la documentation de mysql et innodb et comment les configurer :

Toutes les statistiques sont stockées dans la table STATISTICS dans information_schema.

Les index, dont la cardinalité estimée est plus proche de leur cardinalité exacte (nombre de valeurs distinctes dans le champ) ont été créés il y a plus longtemps, donc mysql a collecté plus de statistiques pour eux et son estimation est plus précise. Si vous exécutez analyse table sur cette table particulière, les cardinalités des index dupliqués seront probablement beaucoup plus proches les unes des autres qu'actuellement.

La grande question est, pourquoi avez-vous des index en double ?