Was ist der MySQL-Befehl, um die Anzahl der Datensätze in einer Tabelle abzurufen?
165
SELECT COUNT(*) FROM fooTable;
zählt die Anzahl der Zeilen in der Tabelle.
Siehe das Referenzhandbuch .
tablename
COUNT(1)
, dies wird der schnellste Weg sein.Weil es niemand erwähnt hat:
listet alle Tabellen zusammen mit einigen zusätzlichen Informationen auf, einschließlich der geschätzten Zeilen für jede Tabelle. Dies ist, was phpMyAdmin für seine Datenbankseite verwendet.
Diese Informationen sind in MySQL 4 verfügbar, wahrscheinlich auch in MySQL 3.23 - lange Zeit vorhergehende Informationsschemadatenbank.
AKTUALISIEREN:
Da es zu Abstimmungen gekommen ist, möchte ich klarstellen, dass die angezeigte Anzahl für InnoDB und TokuDB geschätzt wird und für MyISAM- und Aria (Maria) -Speicher-Engines absolut korrekt ist.
Gemäß der Dokumentation :
Dies ist auch der schnellste Weg, um die Zeilenanzahl unter MySQL zu sehen, da Abfragen wie folgt lauten:
Durchführen eines vollständigen Tabellenscans, was sehr teuer sein kann und auf einem großen Hochlast-Server Stunden dauern kann. Es erhöht auch die Festplatten-E / A.
Dieselbe Operation blockiert möglicherweise die Tabelle für Einfügungen und Aktualisierungen - dies geschieht nur bei exotischen Speicher-Engines.
InnoDB und TokuDB sind mit der Tabellensperre in Ordnung, benötigen jedoch einen vollständigen Tabellenscan.
quelle
Wir haben eine andere Möglichkeit, die Anzahl der Zeilen in einer Tabelle zu ermitteln, ohne eine
select
Abfrage für diese Tabelle auszuführen .Jede MySQL-Instanz verfügt über eine information_schema-Datenbank. Wenn Sie die folgende Abfrage ausführen, werden vollständige Details zur Tabelle einschließlich der ungefähren Anzahl von Zeilen in dieser Tabelle angezeigt.
quelle
Einfach:
quelle
quelle
Mach einfach eine
Danach können Sie Bedingungen mit einem Wo angeben
quelle
Wenn Sie mehrere Felder in Ihrer Tabelle haben und Ihre Tabelle sehr groß ist, ist es besser, NICHT ZU VERWENDEN,
*
da alle Felder in den Speicher geladen werden und die Verwendung der folgenden Felder eine bessere Leistung bietetquelle
Wie von Santosh erwähnt , ist diese Abfrage meiner Meinung nach angemessen schnell, ohne die gesamte Tabelle abzufragen.
So geben Sie ein ganzzahliges Ergebnis der Anzahl von Datensätzen für einen bestimmten Tabellennamen in einer bestimmten Datenbank zurück :
quelle
count(*)
mit Leistungsbewusstsein wünschenquelle
Sie müssen count () verwenden, um die Anzahl der Zeilen zurückzugeben, die einem bestimmten Kriterium entsprechen
quelle
Wenn Sie einen Primärschlüssel oder einen eindeutigen Schlüssel / Index haben, ist die Methode schneller (getestet mit 4 Millionen Zeilentabellen).
und dann Kardinalitätsfeld erhalten (es ist fast augenblicklich)
Zeiten von 0,4 s bis 0,0001 ms
quelle