Mysql
 sql >> Datenbank >  >> RDS >> Mysql

In MySQL 5 ist SELECT COUNT(1) FROM table_name sehr langsam

Das Zählen aller Zeilen in einer Tabelle ist eine sehr langsame Operation; Sie können es nicht wirklich beschleunigen, es sei denn, Sie sind bereit, woanders zu zählen (und das kann natürlich asynchron werden).

Leute, die an MyISAM gewöhnt sind, neigen dazu zu denken, dass sie count(*) "umsonst" bekommen, aber das ist nicht wirklich der Fall. MyISAM schummelt, indem es kein MVCC hat, was es ziemlich einfach macht.

Die Abfrage, die Sie zeigen, führt einen vollständigen Index-Scan eines Nicht-Null-Index durch, was im Allgemeinen der schnellste Weg ist, die Zeilen in einer Innodb-Tabelle zu zählen.

Aus den von Ihnen gegebenen Informationen ist schwer zu erraten, was Ihre Anwendung ist, aber im Allgemeinen ist es für Benutzer (usw.) in Ordnung, ungefähre Annäherungen an die Anzahl der Zeilen in großen Tabellen zu sehen.