Das Folgende ist mein Urteil basierend auf der Datenstruktur des B+-Baums und meiner Spekulation über die experimentellen Ergebnisse. Wenn es Fehler gibt, korrigieren Sie mich bitte! Heute habe ich mit der Optimierung der MySQL count()-Operation experimentiert. Die folgende Diskussion basiert auf der MySQL 5.7 InnoDB-Speicher-Engine und dem x86-Windows-Betriebssystem. Die Struktur der erstellten Tabelle ist wie folgt (die Datenmenge beträgt 1 Million): Zunächst stellt sich die Frage, welches der MySQL-Verfahren count(*), count(PK) und count(1) schneller ist. Es gibt keinen Unterschied! Nach dem Hinzufügen der WHERE-Klausel ist auch die Zeit für die drei Abfragen gleich, daher werde ich die Bilder nicht veröffentlichen. Als ich vorher in der Firma gearbeitet habe, habe ich eine SQL-Anweisung „ Dies beginnt mit dem InnoDB-Index. Der InnoDB-Index ist B+Tree. Für den Primärschlüsselindex gilt: Er speichert nur Daten auf Blattknoten, sein Schlüssel ist der Primärschlüssel und sein Wert sind die gesamten Daten . Dadurch erhalten wir zwei Informationen: Wenn wir also die count(*)-Operation optimieren möchten, müssen wir eine kurze Spalte finden und einen sekundären Index dafür erstellen. Erstellen Sie zuerst einen Index: Es ist ersichtlich, dass die Abfragezeit von 3,35 s auf 0,26 s gesunken ist und die Abfragegeschwindigkeit um fast das 13-fache zugenommen hat. Wenn der Index die Wie Sie sehen, beträgt die Zeit 0,422 s, was ebenfalls sehr schnell ist, aber immer noch etwa 1,5-mal langsamer als Um etwas mutiger zu sein, werde ich ein Experiment durchführen. Ich werde den Index der Die Zeit beträgt 1,172 s Tabelle ändern test1, Index hinzufügen (Status, Imdbid); Nachfüllen! ! Sie können sehen, dass key_len 6 ist und die Beschreibung von Extra einen Index verwendet. Wenn der Index fehlschlägt: Es gibt viele Situationen, in denen Indizes ungültig werden, z. B. bei der Verwendung von Funktionen, !=-Operationen usw. Einzelheiten finden Sie in der offiziellen Dokumentation. Ich habe MySQL nicht eingehend untersucht und das Obige basiert auf meiner Beurteilung auf der Grundlage der B+-Baumdatenstruktur und Spekulationen über experimentelle Ergebnisse. Wenn es Fehler gibt, korrigieren Sie mich bitte! Dies ist das Ende dieses Artikels über die optimierte Implementierung von count() für große MySQL-Tabellen. Weitere relevante Inhalte zur count()-Optimierung für große MySQL-Tabellen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Häufige Fehler beim Schreiben von HTML-Tags
>>: Webentwicklungs-Tutorial: domänenübergreifende Lösung – detaillierte Erläuterung
(Wenn eine Webseite geladen wird, gibt es manchma...
Öffnen Sie zunächst die virtuelle Maschine Öffnen...
Ein Statuscode, der eine vorläufige Antwort anzei...
Inhaltsverzeichnis 1. Was ist 2. Verwendung Numer...
Inhaltsverzeichnis Vorwort 1.ignorieren einfügen ...
Frage Nach dem Nginx-Reverse-Proxy erhält die Tom...
Überblick Im vorherigen Kapitel haben wir die Fil...
Inhaltsverzeichnis Installieren Grundlegende Konf...
Haftungsausschluss: Da das Projekt die Verwendung...
Wenn der Server während der Entwicklung gestartet...
Dieser Artikel erläutert anhand von Beispielen di...
Inhaltsverzeichnis 1. Installationsvorbereitung 1...
Die Informationen auf Baidu sind so vielfältig, d...
Inhaltsverzeichnis 1. istPrototyp von() Beispiel ...
Inhaltsverzeichnis Vorne geschrieben Anmeldeübers...