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

Ist mysql count(*) viel weniger effizient als count(specific_field)?

Für InnoDB

Wenn specific_field nicht nullable ist, sind sie gleichwertig und haben die gleiche Leistung.

Wenn specific_field nullable ist, tun sie nicht dasselbe. COUNT(specific_field) zählt die Zeilen, die einen Nicht-Null-Wert von specific_field haben . Dazu muss der Wert von specific_field betrachtet werden Für jede Reihe. COUNT(*) zählt einfach die Anzahl der Zeilen und kann in diesem Fall schneller sein, da der Wert von specific_field nicht untersucht werden muss .

Für MyISAM

Für Folgendes gibt es eine spezielle Optimierung, sodass nicht einmal alle Zeilen abgerufen werden müssen:

SELECT COUNT(*) FROM yourtable