Eine kurze Diskussion über die Effizienz der MySQL-Unterabfrage-Vereinigung und in

Eine kurze Diskussion über die Effizienz der MySQL-Unterabfrage-Vereinigung und in

Bei jüngsten Produkttests wurde das Problem festgestellt, dass bei einer Anzahl gleichzeitiger Anrufe von weniger als 10 die Reaktionszeit innerhalb von 100 Millisekunden gehalten werden kann. Wenn die Anzahl gleichzeitiger Anfragen jedoch 30 erreicht, überschreitet die Antwortzeit 1 Sekunde. Dies ist nicht akzeptabel, da die Anforderung darin besteht, 100 gleichzeitige Anfragen in 1 Sekunde auszuführen.

Nach dem Testen stellte sich heraus, dass die Zeit hauptsächlich bei einem der Speichervorgänge verbraucht wurde. Ich bin die Anweisungen der gespeicherten Prozedur einzeln durchgegangen und habe keine offensichtlichen Unangemessenheiten gefunden. Da MySQL selbst keine Zeit im Millisekundenbereich bereitstellen kann, habe ich nach einer MySQL-Zeitfunktion gegoogelt, die Millisekunden bereitstellen kann, einige Tests durchgeführt und eine Positionierung vorgenommen. Es stellte sich heraus, dass es sich um eine der Aussagen handelte, die folgendermaßen aussah:

 wählen Sie ... aus A, B wo ... und A.id in (wählen Sie ID aus C wo ...);

Die In-Unterabfrageanweisung erzeugt nur sehr wenige Ergebnisse. Es gibt kein Problem, diese Aussage zu erklären. Es gibt kein Problem mit einem einzelnen Test. Bei einer großen Zahl gleichzeitiger Anfragen kann es jedoch zu Problemen kommen.

Eine Änderung vorgenommen:

 Wählen Sie ... aus A, B, (wählen Sie ... aus C, wo ...) S, wo ....;

Nach einem erneuten Test hat sich die Leistung deutlich verbessert. Die Reaktionsgeschwindigkeit bei 50 Parallelitäten und 10 Parallelitäten ist nahezu gleich.

In MySQL schlägt MySQL möglicherweise vor, von „in“ auf die Verwendung der Unterabfrage „Union“ umzusteigen. Es wurde bisher noch nicht damit experimentiert. Jetzt sehe ich endlich die Effizienz. Natürlich können wir das alles nicht glauben. Es hängt immer noch von Ihrer eigenen Anwendung ab. Am besten ist es, einige Tests und Experimente durchzuführen.

Zusammenfassen

Dies ist der gesamte Inhalt dieses Artikels zur Effizienz von MySQL-Unterabfragen Union und IN. Ich hoffe, er wird für alle hilfreich sein.

Interessierte Freunde können sich an folgende Adresse wenden:

Mehrere wichtige MySQL-Variablen

Detaillierte Erklärung des Codes zwischen der MySQL-Masterbibliothek Binlog (Master-Log) und der Slave-Bibliothek Relay-Log

MySQL-Datenbank-Entwicklungsspezifikationen [empfohlen]

Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht, damit wir diese gemeinsam besprechen können. Ich hoffe auch, dass Freunde die Website 123WORDPRESS.COM unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Analyse und Optimierung der Effizienz gemeinsamer Abfragen in MySQL mit mehreren Tabellen
  • Detaillierte Erläuterung der Prinzipien und Anwendungsbeispiele von MySQL-Joinabfragen, Union-Abfragen und Unterabfragen
  • Was ist schneller: MySQL-Volltextindex, gemeinsamer Index, Like-Abfrage und JSON-Abfrage?
  • Analyse von Beispielen für gemeinsame Abfragevorgänge bei MySQL für mehrere Tabellen
  • Zusammenfassung von vier Situationen gemeinsamer Abfragen zwischen zwei Tabellen in MySQL
  • Beliebte Erklärung mehrerer gemeinsamer MySQL-Abfragen
  • Einführung in die Verwendung der gemeinsamen MySQL-Abfragen UNION und UNION ALL
  • Lösung für das Fehlerproblem bei der Verwendung von UNION und Order by in einer gemeinsamen MySQL-Abfrage
  • MySQL Multi-Table Joint Query gibt den Inhalt einer Tabelle Implementierungscode
  • Detaillierte Erläuterung des MySQL-Mechanismus zur gemeinsamen Abfrageoptimierung

<<:  Detaillierte Erklärung, wie man ein Passwort an den SSH/SCP-Befehl im Bash-Skript übergibt

>>:  js implementiert den Algorithmus zur Angabe der Reihenfolge und Menge der roten Umschläge

Artikel empfehlen

Analyse der MySQL-Absturzwiederherstellung basierend auf Redo Log und Undo Log

Inhaltsverzeichnis MySQL-Absturzwiederherstellung...

So erlauben Sie allen Hosts den Zugriff auf MySQL

1. Ändern Sie den Host-Feldwert eines Datensatzes...

Detaillierte Erläuterung der MySQL-Benutzerrechteverwaltung

Inhaltsverzeichnis Vorwort: 1. Einführung in die ...

CSS-Implementierungscode für horizontale und vertikale Fortschrittsbalken

Manchmal ist es schön, ein paar nette Scrollbar-E...

Details zur Vue-Vorlagenkompilierung

Inhaltsverzeichnis 1. analysieren 1.1 Regeln für ...

Schritte und Methoden zur Bindung von Domänennamen und IPs in der Alibaba Cloud

1 Rufen Sie die Alibaba Cloud-Konsole auf, suchen...

MySQL-Optimierung: Cache-Optimierung (Fortsetzung)

In MySQL gibt es überall Caches. Wenn ich den Que...

So nutzen Sie die Multi-Core-CPU in node.js voll aus

Inhaltsverzeichnis Überblick So nutzen Sie die Mu...

Detaillierte Erklärung zur Überwachung von MySQL-Anweisungen

Schnelles Lesen Warum müssen wir SQL-Anweisungen ...

Linux Yum-Paketverwaltungsmethode

Einführung yum (Yellow dog Updater, Modified) ist...

Tutorial zur Verwendung von $attrs und $listeners in Vue

Inhaltsverzeichnis einführen Beispiel Zusammenfas...

Detaillierte Analyse des Flex-Layouts in CSS3

Das Flexbox-Layoutmodul soll eine effizientere Mö...

Die neueste Sammlung von 18 Webdesign-Arbeiten im grünen Stil

Toy Story 3 Online-Marketing-Website Zen Mobile E...