sql >> Databáze >  >> RDS >> Mysql

Je mysql count(*) mnohem méně efektivní než count(specific_field)?

Pro InnoDB

Pokud specific_field není možné nulovat, jsou ekvivalentní a mají stejný výkon.

Pokud specific_field je nulovatelné, nedělají totéž. COUNT(specific_field) počítá řádky, které nemají nulovou hodnotu specific_field . To vyžaduje podívat se na hodnotu specific_field pro každý řádek. COUNT(*) jednoduše počítá počet řádků a v tomto případě může být rychlejší, protože nevyžaduje zkoumání hodnoty specific_field .

Pro MyISAM

Pro následující existuje speciální optimalizace, takže ani nemusí načítat všechny řádky:

SELECT COUNT(*) FROM yourtable


  1. Jak vyřešit ORA-29471 na dbms_sql.open_cursor?

  2. Jak získat stav MySQL v dotazu

  3. Tabulka historie SQL serveru – naplnit pomocí SP nebo Trigger?

  4. MySQL – Nelegální kombinace porovnávání (utf8_general_ci,COERCIBLE) a (latin1_swedish_ci,IMPLICIT) pro operaci „UNION“