In een waas...!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Jan Koehoorn

Jan Koehoorn

15/10/2005 10:00:00
Quote Anchor link
De snelste manier om alle records te tellen in een MySql table is deze:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
  // records tellen
  $sql = "SELECT COUNT(*) AS tot FROM mijntabel";
?>


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

PHP hulp

29/03/2024 00:31:27
 
Remco van Arkelen

Remco van Arkelen

15/10/2005 10:59:00
Quote Anchor link
COUNT(1) is nóg sneller als COUNT(*), omdat je met * alle kolomnamen telt :)
 
Jan Koehoorn

Jan Koehoorn

15/10/2005 11:06:00
Quote Anchor link
Remco:
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.


Bron: MySql online manual
Gewijzigd op 15/10/2005 11:09:00 door Jan Koehoorn
 
Pieter van Linschoten

Pieter van Linschoten

15/10/2005 12:47:00
Quote Anchor link
Maar ik gebruik wel WHERE, is dan Count(1) sneller?
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.