01 SzenarioanalyseHeute Nachmittag hat ein Entwicklungskollege die Anforderung vorgeschlagen, einige Datensätze online zu löschen. Nach einem kurzen Blick auf die Datenverteilung wird geschätzt, dass mehr als 27 Millionen Datensätze in der Datentabelle gelöscht werden müssen. Die Gesamtzahl der Datensätze in der Datentabelle beträgt mehr als 28 Millionen, was bedeutet, dass die zu löschenden Datensätze den überwiegenden Großteil der gesamten Datensätze ausmachen. Wenn mehr als 27 Millionen Datensätze gelöscht werden, dauert es lange, sie zu verwenden, was sich definitiv auf das Online-Geschäft auswirken wird. Hier bauen wir den tatsächlichen Anwendungsfall einfach in folgende Methode um: mysql> wähle Datum, Anzahl(*) aus test.tbl_a, gruppiere nach Datum; +----------+----------+ | Datum | Anzahl(*) | +----------+----------+ | | 63103 | | 20190118 | | | | 125916 | | 20190120 | | | | 129198 | | 20190122 | | | | 5191247 | +----------+----------+ Zeilen im Satz (13,21 Sek.) Oben sehen Sie die Struktur der rekonstruierten Tabelle. Wir können sehen, dass die Datenmenge in jeder Gruppe nicht gering ist, nachdem die Tabelle tbl_b in der Testdatenbank nach Datum gruppiert wurde. Unsere Anforderung besteht darin, die Datensätze mit den Daten 20190118 und 20190123 zu löschen. Es ist ersichtlich, dass es mehr als 20 Millionen Datensätze dieser beiden Typen gibt, die den größten Teil der Daten in der Tabelle ausmachen. Wenn sie direkt gelöscht werden, wird das Online-Geschäft definitiv blockiert. Im Folgenden sind die Betriebsmethoden aufgeführt. Es ist zu beachten, dass die Voraussetzung für die Anwendung der folgenden Betriebsmethoden lautet: Die zu löschenden Daten machen den überwiegenden Großteil der Datentabelle aus. 02 FunktionsweiseDurch Analyse wissen wir, dass die verbleibenden Tabellendaten einen sehr kleinen Teil der gesamten Tabelle ausmachen. Dieser Vorgang ist in vier Schritte unterteilt: 1. Speichern wir zunächst die restlichen Daten in einer anderen Datenbank test1: Tabelle test1.tbl_b_new erstellen als Wählen Sie * aus test.tbl_b wobei Datum in(,,,,); Dieser Vorgang dauert nur etwa 3 Sekunden; 2. Wir erstellen eine Tabelle tbl_b mit demselben Namen in der Datenbank test1. Ihre Struktur entspricht der Datenstruktur tbl_b in der Testdatenbank: Erstellen Sie die Tabelle test1.tbl_b wie test.tbl_b. 3. Als Nächstes verwenden wir die Umbenennungsoperation in der Datenbank, um die Tabelle tbl_b in der Tabelle test mit der Tabelle tbl_b in test1 auszutauschen, was dem Löschen aller Daten in der Tabelle in der Testdatenbank entspricht. Tabelle test.tbl_b in test1.tbl_b_bak umbenennen, test1.tbl_b ZU test.tbl_b, test1.tbl_b_bak ZU test1.tbl_b; 4. Tragen Sie anschließend die restlichen im ersten Schritt gespeicherten Daten wie folgt in die neue Tabelle ein: in test.tbl_b einfügen, * aus test1.tbl_b_new auswählen; 03 ErgebnisanalyseEs scheint, dass wir das Problem komplizierter gemacht haben. Wir haben der direkten Löschung mehrere Schritte hinzugefügt. Aber das ist nicht der Fall. Diese Reihe von Vorgängen kann uns mehrere Minuten sparen und hat weniger Auswirkungen auf das Online-Geschäft. Die Gründe dafür sind folgende:
Die zweite Funktion gibt uns eine Idee. Wenn wir in einem sehr dringenden Geschäft eine Tabelle verwenden müssen, haben wir oft nicht genug Zeit, um die Tabelle zu sichern. Wenn wir die Daten in einer großen Tabelle löschen möchten und entsprechende Sicherungen erstellen müssen, können wir dies schnell durch den Umbenennungsvorgang verarbeiten und dann einen Weg finden, die Tabelle nach der Umbenennung zu sichern. Das obige Beispiel verwendet zwei Methoden zum Klonen von Tabellen: create table as und create table like. Dabei sind einige Punkte zu beachten: Die Methode „Tabelle erstellen“ klont die Tabellenstruktur vollständig, fügt aber keine Daten ein. Sie müssen die Methode „Insert into“ oder „Load Data“ verwenden, um Daten separat zu laden. Wenn Sie interessiert sind, können Sie einige Experimente durchführen, um dies zu überprüfen. Oben finden Sie ausführliche Informationen zur Methode zum Bereinigen von Daten in einer MySQL-Online-Datenbank. Weitere Informationen zum Bereinigen von Daten in einer MySQL-Online-Datenbank finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: jquery+springboot realisiert die Datei-Upload-Funktion
>>: Docker exec führt mehrere Befehle aus
Wenn wir die Verschachtelungsregeln grundlegender...
Werfen wir einen Blick auf die Zabbix-Überwachung...
Bei der Verwendung von Vue zum Entwickeln von Pro...
Gemeinsame Eigenschaften von Tabellen Die grundle...
Inhaltsverzeichnis Hintergrund Was ist das Metave...
Heute ist bei mir ein Problem aufgetreten, als ic...
Inhaltsverzeichnis dva Verwendung von dva Impleme...
Hinweis: Diese Tabelle ist aus dem W3School-Tutor...
1. Bereiten Sie zunächst VS2019 und die MySQL-Dat...
Das Hinzufügen einer Hintergrundbildsteuerung zu ...
Inhaltsverzeichnis Ausgabe Ausgabepfad Ausgabe.öf...
1. Führen Sie Schriftarten aus, öffnen Sie den Sc...
Inhaltsverzeichnis Geschichte pushState() Methode...
<br />Dieser Artikel soll Anfängern hauptsäc...
Inhaltsverzeichnis 1. Vue-Listener-Array 2. Situa...