In diesem Artikel wird hauptsächlich die Zusammenfassung der MySQL-Optimierung vorgestellt. Der Artikel führt einen einfachen Test und Vergleich durch, der einen gewissen Referenzwert hat.
1, COUNT(*) und COUNT(COL)
COUNT(*) führt normalerweise einen Indexscan für den Primärschlüssel durch, während COUNT(COL ) Darüber hinaus ist Ersteres die Gesamtzahl aller übereinstimmenden Datensätze in der Statistiktabelle, während Letzteres die Anzahl aller übereinstimmenden COL-Datensätze in der Berechnungstabelle ist. Es gibt Unterschiede.
Optimierungszusammenfassung für MyISAM-Tabellen:
1. SELECT COUNT(*) FROM Tabellenname ist unter allen Umständen die beste Wahl; Reduzieren Sie Abfragen wie SELECT COUNT(*) FROM tablename WHERE COL = 'value';
3. Beseitigen Sie das Auftreten von SELECT COUNT(COL) FROM tablename WHERE COL2 ='value'.
2. COUNT(*) oder COUNT(id)
Nach meinem Verständnis sollte es schneller sein, COUNT(id) zu verwenden Denn wenn meine ID ein automatisch inkrementierender Primärschlüssel ist, verbraucht die Berechnung seiner Nummer offensichtlich weniger Ressourcen als die Berechnung der Anzahl aller Felder. Ich habe jedoch mehr als einen Artikel gesehen, der der Anleitung zur MySQL-Abfragebeschleunigung ähnelt. Sie alle empfehlen, dass wir SELECT COUNT(*) anstelle des direkten COUNT-Primärschlüssels verwenden.
Es scheint, dass die Gesamtzahl der Einträge mithilfe der MyISAM-Engine in der Tabelle gespeichert wird. Wenn es kein WHERE gibt oder WHERE immer wahr ist (z. B. WHERE 1), dann kann COUNT(*). Gibt direkt die Gesamtzahl der Einträge zurück.
Außerdem ist es offensichtlich, dass COUNT(*) nicht „alle Felder zählt“. Offensichtlich analysiert MySQL * in „ein Datenstück“.
Testdaten, einfacher Vergleich, keine weiteren eingehenden Tests:
Im Allgemeinen ist die Verwendung von COUNT(id) immer noch möglich schneller. Hier ist ein einfacher Vergleich als Referenz.
#0.817-一百万条的查询时间 select count(*) from student ; #0.789-一百万条的查询时间 select count(id) from student; #1.011-一百万条的查询时间 select count(name) from student; #1.162-一百万条的查询时间 SELECT COUNT(*) FROM student WHERE namelike '%xiaoli%';#默认用主键索引查询,但是加上like条件后索引失效
Beispiel für die gemeinsame Nutzung von IN-Austausch gegen INNER JOIN in der MySQL-Optimierung
Eine Zusammenfassung einiger häufig verwendeter MySQL-Optimierungsmethoden
Eine Zusammenfassung häufig verwendeter SQL-Anweisungsabfragemethoden für die MySQL-Optimierung
Das obige ist der detaillierte Inhalt vonZusammenfassung der MySQL-Optimierung – Gesamtzahl der Abfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!