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

Dans MySQL 5, SELECT COUNT(1) FROM table_name est très lent

Compter toutes les lignes d'une table est une opération très lente; vous ne pouvez pas vraiment l'accélérer, à moins que vous ne soyez prêt à tenir un décompte ailleurs (et bien sûr, cela peut devenir désynchronisé).

Les habitués de MyISAM ont tendance à penser qu'ils reçoivent count(*) "gratuitement", mais ce n'est pas vraiment le cas. MyISAM triche en n'ayant pas de MVCC, ce qui le rend assez facile.

La requête que vous affichez effectue une analyse complète de l'index d'un index non nul, ce qui est généralement le moyen le plus rapide de compter les lignes dans une table innodb.

Il est difficile de deviner à partir des informations que vous avez fournies, quelle est votre application, mais en général, les utilisateurs (etc.) peuvent voir des approximations proches du nombre de lignes dans les grands tableaux.