Das vorliegende Problem betrifft ein deutlich langsames „SELECT COUNT(*)“-Abfrage in MySQL, auch wenn eine „WHERE“-Klausel angewendet wird. Um dieser Herausforderung zu begegnen, ist es wichtig, den Speichermechanismus von MySQL zu verstehen.
InnoDB, die in diesem Fall verwendete Speicher-Engine, verwendet geclusterte Primärschlüssel . Dies bedeutet, dass der Primärschlüssel neben der Datenzeile auf denselben Datenseiten und nicht auf separaten Indexseiten gespeichert wird. Folglich erfordert die Durchführung eines Bereichsscans für einen gruppierten Primärschlüssel das Scannen aller Zeilen, einschließlich ihrer möglicherweise breiten Spaltenwerte. Die betreffende Tabelle enthält eine TEXT-Spalte, was das Leistungsproblem weiter verschärft.
Um diese Abfrage zu optimieren, ziehen Sie die folgenden Strategien in Betracht:
Um die Leistung weiter zu verbessern, sollten Sie die Spalte „change_event_id“ ändern muss „BIGINT UNSIGNED“ sein, wenn es von Null aus inkrementiert wird. Diese Änderung kann zu einem geringeren Speicherbedarf und einer verbesserten Leistung führen.
Das obige ist der detaillierte Inhalt vonWie kann ich eine langsame \'SELECT COUNT(*)...\'-Abfrage mit einer WHERE-Klausel in MySQL beschleunigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!