Ich möchte jetzt herausfinden, wie viele Datensätze jeweils zB. in tabelle2 und tabelle3 enthalten sind.
SELECT * FROMtabelle2
SELECT * FROMtabelle3
Und werte das Ergebnis dann mit mysql_num_rows() aus.Das ist eine sehr schlechte Idee, denn die Anzahl der Datensätze kennt PHP erst, wenn es alle Datensätze abgeholt hat.
Jop, hab ich mir gedacht.
Im Forum fand ich noch die Möglichkeit von
SELECT COUNT(*) FROMtabelle2
SELECT COUNT(*) FROMtabelle3
was mir dann das Zählen schon vorweg nimmt.Das ist der Weg des geringsten Aufwands für eine Tabelle. Das DBMS zählt schneller und muss dann nur eine Zahl an den Client übermitteln. Außerdem muss MySQL in dem speziellen Fall nicht alles zu Fuß zählen, denn die Gesamtzahl der Datensätze verwaltet es extra und hat damit einen sehr schnellen Zugriff auf das Ergebnis.
Bei der Möglichkeit hab ich aber auch wieder so viele Datenbankabrfagen, wie ich Tabellen untersuchen möchte, was bei vielen Tabellen vermutlich zu Problemen führt.
Nicht wirklich. Es sei denn, du schränkst das Suchergebnis ein und das DBMS kann keinen Index verwenden.
Gut zu wissen, dass das der geringste Aufwand für die DB ist, das war nämlich so meine Sorge.
Ich denke mal, dass wird dann die Methode meiner Wahl sein. :)
Dazu fällt mir SHOW TABLE STATUS [LIKE '...'] ein.
Das liefert einem ja ein Ergebnis, in dem zu jeder Tabelle auch die Anzahl der Datensätze steht.Ja, und ein Datensatz pro Tabelle ist doch vertretbar. Du wirst doch wohl hoffentlich keine Tausende von Tabellen anlegen?
Naja ich hab keine tausende Tabellen, es ging mir eigentlich auch eher um die Theorie.
In der Praxis funktionieren ja alle vorgeschlagenen Methoden, aber ich wollte halt wissen, welche die effizenteste ist und am wenigsten Zeit braucht.
Und ob es vll. eine Methode mit nur einer Anfrage gibt, aber ok, deine Argumente für das mit COUNT haben mich überzeugt, dass das mit mehreren ok ist. :)
Jedenfalls mal Danke für die schnelle und gute Hilfe.