Antworten:
SELECT COUNT(*) FROM fooTable;
zählt die Anzahl der Zeilen in der Tabelle.
Siehe das Referenzhandbuch .
COUNT(1)
, dies wird der schnellste Weg sein.
Weil es niemand erwähnt hat:
show table status;
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.
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 :
Die Anzahl der Zeilen. Einige Speicher-Engines wie MyISAM speichern die genaue Anzahl. Bei anderen Speicher-Engines wie InnoDB ist dieser Wert eine Annäherung und kann vom tatsächlichen Wert um bis zu 40% bis 50% abweichen. Verwenden Sie in solchen Fällen SELECT COUNT (*), um eine genaue Zählung zu erhalten.
Dies ist auch der schnellste Weg, um die Zeilenanzahl unter MySQL zu sehen, da Abfragen wie folgt lauten:
select count(*) from table;
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.
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.
select * from information_schema.TABLES where table_name = 'table_name'\G
Einfach:
SELECT COUNT(*) FROM `tablename`
select count(*) from YourTable
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 bietet
SELECT COUNT(1) FROM fooTable;
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 :
select TABLE_ROWS from information_schema.TABLES where TABLE_SCHEMA = 'database'
AND table_name='tablename';
count(*)
mit Leistungsbewusstsein wünschen
$sql="SELECT count(*) as toplam FROM wp_postmeta WHERE meta_key='ICERIK' AND post_id=".$id;
$total = 0;
$sqls = mysql_query($sql,$conn);
if ( $sqls ) {
$total = mysql_result($sqls, 0);
};
echo "Total:".$total;`
Sie müssen count () verwenden, um die Anzahl der Zeilen zurückzugeben, die einem bestimmten Kriterium entsprechen
select count(*) from table_name;
Wenn Sie einen Primärschlüssel oder einen eindeutigen Schlüssel / Index haben, ist die Methode schneller (getestet mit 4 Millionen Zeilentabellen).
SHOW INDEXES FROM "database.tablename" WHERE Key_Name=\"PRIMARY\"
und dann Kardinalitätsfeld erhalten (es ist fast augenblicklich)
Zeiten von 0,4 s bis 0,0001 ms
tablename