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

Sollte ich COUNT in InnoDB insgesamt vermeiden?

SELECT COUNT(*) FROM Tabellenname scheint einen vollständigen Tabellenscan durchzuführen.

SELECT COUNT(*) FROM tablename USE INDEX (Spaltenname) scheint ziemlich schnell zu sein, wenn der verfügbare Index NICHT NULL, EINZIGARTIG und fester Länge ist. Ein nicht eindeutiger Index hilft nicht viel, wenn überhaupt. Indizes mit variabler Länge (VARCHAR) scheinen langsamer zu sein, aber das kann nur daran liegen, dass der Index physisch größer ist. Integer UNIQUE NOT NULL Indizes können schnell gezählt werden. Was Sinn macht.

MySQL sollte diese Optimierung wirklich automatisch durchführen.