1. COUNT(*) und COUNT(COL) COUNT(*) führt normalerweise einen Indexscan auf dem Primärschlüssel durch, was bei COUNT(COL) jedoch nicht unbedingt der Fall ist. Darüber hinaus zählt ersteres die Gesamtzahl aller übereinstimmenden Datensätze in der statistischen Tabelle, während letzteres die Anzahl aller übereinstimmenden COL-Datensätze in der Berechnungstabelle zählt. Es gibt Unterschiede. 1. SELECT COUNT(*) FROM tablename ist in jedem Fall die beste Wahl; 2. Versuchen Sie, Abfragen wie SELECT COUNT(*) FROMtablename WHERE COL = 'value'; zu reduzieren. 3. Verhindern Sie das Auftreten von SELECT COUNT(COL) FROM tablename WHERE COL2 ='value'. 2. COUNT(*) oder COUNT(id) Meinem Verständnis nach sollte es schneller sein, COUNT(id) zu verwenden, denn wenn meine ID ein automatisch inkrementierender Primärschlüssel ist, verbraucht die Berechnung ihrer Nummer offensichtlich weniger Ressourcen als die Berechnung der Anzahl aller Felder. Ich habe jedoch mehrere ähnliche Artikel zum Beschleunigen von MySQL-Abfragen gesehen, in denen empfohlen wird, SELECT COUNT(*) zu verwenden, anstatt den Primärschlüssel direkt zu zählen. Warum ist das so? Dies liegt anscheinend daran, dass die Tabelle, die die MyISAM-Engine verwendet, die Gesamtzahl der Einträge speichert. Wenn kein WHERE vorhanden ist oder das WHERE immer wahr ist (z. B. WHERE 1), kann COUNT (*) direkt die Gesamtzahl der Einträge zurückgeben. Darüber hinaus ist es offensichtlich, dass COUNT(*) nicht „alle Felder berechnen“ bedeutet. MySQL interpretiert * offensichtlich als „ein Datenelement“. Testdaten, einfacher Vergleich, keine weiteren Tests: #0.817-Abfragezeit für eine Million Datensätze, select count(*) from student; #0,789 – Abfragezeit für eine Million Datensätze, select count(id) from student; #1.011-Abfragezeit für eine Million Datensätze, select count(name) from student; #1.162-Abfragezeit für eine Million DatensätzeSELECT COUNT(*) FROM student WHERE namelike '%xiaoli%';#Standardmäßig wird der Primärschlüsselindex für die Abfrage verwendet, aber der Index wird ungültig, nachdem die Like-Bedingung hinzugefügt wurde Zusammenfassen Im Allgemeinen ist die Verwendung von COUNT(id) schneller. Hier ist ein einfacher Vergleich zu Ihrer Information. Das Obige ist der gesamte Inhalt dieses Artikels zur MySQL-Optimierungszusammenfassung – Gesamtzahl der Abfragen. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können sich auf Folgendes beziehen: MySQL-Optimierung mit Verknüpfungen anstelle von Unterabfragen, Beispielanalyse der Optimierung von MySQL-Unterabfragen und verschachtelten Abfragen, Beispiele für Fähigkeiten zur Optimierung der Effizienz von MySQL-Unterabfragen in Anweisungen usw. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank, Freunde, für die Unterstützung dieser Site! Das könnte Sie auch interessieren:
|
<<: js implementiert einen einzigen Klick zum Ändern der Tabelle
>>: So erstellen Sie eine PHP+Nginx+Swoole+MySQL+Redis-Umgebung mit Docker
Methode 1: Werte hinzufügen Gehen wir zu MDN, um ...
Ich bin während der Entwicklung auf ein solches P...
Inhaltsverzeichnis Vorwort Modifikatoren des V-Mo...
Bei Verwendung des Plug-Ins „Docker-Maven-Plugin“...
Vorwort Wenn wir den Effekt der Online-Codekompil...
Routenplanung vue-router4 behält den Großteil der...
MySQL 8.0 für Windows v8.0.11 offizielle kostenlo...
In diesem Artikel finden Sie den spezifischen Cod...
Überblick Dieser Artikel beginnt mit der Einführu...
Das Hinzufügen der erforderlichen Kommentare ist ...
Inhaltsverzeichnis Vorwort: 1. Einführung in die ...
Vorwort: Für die Implementierung digitaler Additi...
Inhaltsverzeichnis 1. Beschreibung der Funktionen...
Eine auf Canvas basierende Demo einer dynamischen...
Heute habe ich von Alibaba Cloud eine Festplatten...