In den letzten Tagen habe ich mir eine leistungsoptimierte gespeicherte Prozedur angesehen. Die Laufzeit dieser gespeicherten Prozedur in der Produktionsumgebung des Kunden (die Datenbank ist MySQL 5.1) beträgt mehr als 30 bis 40 Minuten Die Anforderung besteht darin, die
Implementierung dieser gespeicherten Prozedur zu verbessern:
1 Die Abfragen von zwei Tabellen (aus geschäftlichen Gründen umfassen auch Unterabfragen der Tabelle) werden jeweils in temporäre Tabellen eingefügt Die Daten der beiden Tabellen sind 310W+, 120W
2. In der Mitte muss eine gewisse Verarbeitung durchgeführt werden, und die Datengruppe der temporären Tabelle wird in eine andere temporäre Tabelle eingefügt 🎜>3. Schließlich wird die Datengruppe der temporären Tabelle eingefügt. Ich bin zu einer formalen Tabelle gelangt und habe 140W+-Daten eingefügt.
Bilder aus der App
, also ist die Datenmenge zu groß und der Speicher platzt?
The table 'tmp_item_bu_parter_price' is fullSechstens folgte ich auch verschiedenen Zweigen der Logik, stellte jedoch fest, dass sie alle derselben Logik folgten. Das ist ein kleiner Nachteil. Ich habe vorher lange darüber nachgedacht und mich nicht zuerst über die Einstellungen des Kunden informiert. 7. Multithreading. Da die Syntax von insert into ...select... in der gespeicherten Prozedur verwendet wird und die Where-Bedingung nicht indiziert ist, wird eine vollständige Tabellensperre verursacht. Das Ergebnis des Multithread-Tests ist zweifellos die Sperrtabelle, und die Ausführung einiger Daten schlägt fehl. 8. Logischerweise wird nicht vollständig eingefügt, sondern in Schritten, die vorhandenen Daten müssen jedoch noch aktualisiert werden. Die Leistung sollte also ungefähr gleich sein. Leistung wird hauptsächlich durch das Einfügen von Millionen von Daten verbraucht. Jetzt bin ich völlig ratlos und weiß nicht, wie ich damit umgehen soll. [Verwandte Empfehlungen]1.
Kostenloses MySQL-Online-Video-Tutorial
2. Neuestes MySQL-Handbuch-Tutorial
3. Dinge zum Datenbankdesign
Das obige ist der detaillierte Inhalt vonTeilen Sie einige der Probleme mit, auf die ich während der dreitägigen Leistungsoptimierung gestoßen bin. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!