In een waas...!
Jan Koehoorn
15/10/2005 10:00:00De snelste manier om alle records te tellen in een MySql table is deze:
De syntax SELECT COUNT(*) is in MySql geoptimaliseerd om razendsnel het aantal records te geven, als:
1) Je geen andere kolomnamen gebruikt
2) Je maar één tabel aanspreekt
3) Je geen WHERE gebruikt
4) Het type tabel MyISAM is
De syntax SELECT COUNT(*) is in MySql geoptimaliseerd om razendsnel het aantal records te geven, als:
1) Je geen andere kolomnamen gebruikt
2) Je maar één tabel aanspreekt
3) Je geen WHERE gebruikt
4) Het type tabel MyISAM is
PHP hulp
02/01/2025 15:44:18Remco van Arkelen
15/10/2005 10:59:00Jan Koehoorn
15/10/2005 11:06:00Remco:
COUNT(1) is nóg sneller als COUNT(*), omdat je met * alle kolomnamen telt :)
Nee, COUNT(*) is een speciaal geval. In MyISAM tabellen wordt het aantal records opgeslagen en met deze syntax spreek je dat aantal rechtstreeks aan.
Quote:
COUNT(*) is somewhat different in that it returns a count of the number of rows retrieved, whether or not they contain NULL values.
COUNT(*) is optimized to return very quickly if the SELECT retrieves from one table, no other columns are retrieved, and there is no WHERE clause. For example:
mysql> SELECT COUNT(*) FROM student;
This optimization applies only to MyISAM tables only, because an exact record count is stored for these table types and can be accessed very quickly. For transactional storage engines (InnoDB, BDB), storing an exact row count is more problematic because multiple transactions may be occurring, each of which may affect the count.
COUNT(*) is optimized to return very quickly if the SELECT retrieves from one table, no other columns are retrieved, and there is no WHERE clause. For example:
mysql> SELECT COUNT(*) FROM student;
This optimization applies only to MyISAM tables only, because an exact record count is stored for these table types and can be accessed very quickly. For transactional storage engines (InnoDB, BDB), storing an exact row count is more problematic because multiple transactions may be occurring, each of which may affect the count.
Bron: MySql online manual
Gewijzigd op 15/10/2005 11:09:00 door Jan Koehoorn