sql >> Database >  >> RDS >> Mysql

Is mysql count(*) veel minder efficiënt dan count(specific_field)?

Voor InnoDB

Als specific_field is niet nullable, ze zijn gelijkwaardig en hebben dezelfde prestaties.

Als specific_field nullable is, doen ze niet hetzelfde. COUNT(specific_field) telt de rijen die een niet-null-waarde hebben van specific_field . Hiervoor moet je kijken naar de waarde van specific_field voor elke rij. COUNT(*) telt eenvoudig het aantal rijen en kan in dit geval sneller zijn omdat de waarde van specific_field niet hoeft te worden onderzocht .

Voor MijnISAM

Er is een speciale optimalisatie voor het volgende, zodat het niet eens alle rijen hoeft op te halen:

SELECT COUNT(*) FROM yourtable


  1. Problemen met het invoegen van 4-Byte UTF-8-tekens/emoji in MySQL-database wanneer de invoegtrigger actief is

  2. ORA-00918:kolom dubbelzinnig gedefinieerd ik krijg deze fout

  3. Hoe unieke / onderscheidende elementen in de JSON-array te krijgen in MySQL 5.7

  4. Many to Many Table - Prestaties zijn slecht