phpbar.de logo

Mailinglisten-Archive

count(*) vs. mysql_num_rows()

count(*) vs. mysql_num_rows()

Christian Hamacher mysql-de_(at)_lists.bttr.org
Tue, 7 May 2002 15:42:50 +0200


Hi Christian,

> ich hab gestern was umgestellt, eine Zählung zur Anzeige aller
> Suchergebnisse von mysql_num_rows() auf count(*) im Query....nur leider wird
> dadurch jede Menge Performance verbraten und Querys (Suchanfragen) dauern
> länger, weil MySQL dabei keine Indexe mehr nutzt...ist das normal??
> Anscheinend schon lt. Manual...

Wo steht das?
Ich habe folgendes gefunden.

| COUNT(*) ist darauf optimiert, sehr schnell Ergebnisse zu liefern, wenn
| SELECT aus einer Tabelle abfragt, wenn keine andere Spalte abgerufen wird
| und wenn es keine WHERE-Klausel

> Sollte ich lieber mysql_num_rows() nehmen???

Ich weiß ja nicht wie groß deine Datenbestände sind, aber wenn du die
PHP-Funktion mysql_num_rows() verwenden willst um die Gesamtzahl der
Suchergebnisse zu ermitteln, heißt das, daß du das Gesamte Suchergebnisse
in den für dein PHP-Script zu Verfügung stehenden Arbeitsspeicher laden
mußt. Das kann unter Umständen tödlich für selbiges sein.

Ich würde an deiner Stelle mal versuchen ob ein count(ID) bessere Ergebnisse
bringt. Wobei ID für ein Feld steht das einen Index hat.

Gruß
  Christian

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive