sql >> Databasteknik >  >> RDS >> Mysql

Är mysql count(*) mycket mindre effektivt än count(specific_field)?

För InnoDB

Om specific_field är inte nullbar, de är likvärdiga och har samma prestanda.

Om specific_field är nullbar gör de inte samma sak. COUNT(specific_field) räknar raderna som inte har ett nollvärde av specific_field . Detta kräver att man tittar på värdet för specific_field för varje rad. COUNT(*) räknar helt enkelt antalet rader och kan i detta fall vara snabbare eftersom det inte kräver att man undersöker värdet på specific_field .

För MyISAM

Det finns en speciell optimering för följande så att den inte ens behöver hämta alla rader:

SELECT COUNT(*) FROM yourtable


  1. Hur lagrar man decimal i MySQL?

  2. Hur får man en främmande nyckel som pekar på två primärnycklar?

  3. EXECUTE-behörigheten nekades för objektet 'xxxxxxx', databasen 'zzzzzzz', schemat 'dbo'

  4. Söka i flera tabeller (SQL)