Heim > Artikel > Backend-Entwicklung > So kombinieren Sie PHP mit MySQL für die Datenverarbeitung im zweistelligen Millionenbereich
Eine Bestelltabelle im Wert von 100 Millionen kann in fünf Tabellen unterteilt werden , so dass jede Tabelle nur 20 Millionen Daten hat und den Druck der Originaltabelle teilt. Hier können die Tabellen nach Regionen unterteilt werden Tabelle geht zu Tabelle, um die gewünschten Daten zu finden.
Middleware: Verwenden Sie die automatisch inkrementierte ID der Haupttabelle als Middleware (welche Felder eignen sich für Middleware? Sie müssen eindeutig sein)
Wie wird verteilt? Nach dem Einfügen in die Haupttabelle wird eine ID zurückgegeben und das Modulo wird basierend auf dieser ID und der Anzahl der Tabellen ermittelt. Die Daten werden in die Tabelle eingefügt, aus der der Rest besteht.
Hinweis: Die ID in der Untertabelle muss mit der ID der Haupttabelle übereinstimmen.
In Zukunft wird die Haupttabelle nur noch von Einfügevorgängen verwendet. Änderungen, Löschungen und Lesevorgänge müssen nicht mehr verwendet werden Haupttabelle
Verwandte Lernempfehlungen: PHP-Programmierung vom Einstieg bis zum Master
1. Was ist eine Nachrichtenwarteschlange?
Container zum Speichern von Nachrichten während der Nachrichtenweitergabe
2. Historische Gründe für die Erstellung von Nachrichtenwarteschlangen
Eigenschaften von Nachrichtenwarteschlangen: First In, First Out
Die ausgeführten SQL-Anweisungen werden zunächst in der Nachrichtenwarteschlange gespeichert und dann nacheinander reibungslos und asynchron in die Datenbank eingefügt.
Anwendung: Sina, fügen Sie zuerst die Sofortkommentare in die Nachrichtenwarteschlange ein und fügen Sie dann die SQL-Anweisungen in die Nachricht ein Warteschlange nacheinander durch geplante Aufgaben. Gehen Sie zur Datenbank
Vorgangsuntertabelle zum Ändern
Bei dieser Änderung liegt ein Problem vor. In der Haupttabelle treten Inkonsistenzen mit den Daten in der Untertabelle auf. Wie können die Daten in der Haupttabelle und der Untertabelle konsistent gemacht werden?
Nach Abschluss der Änderung werden die Daten der Haupttabelle geändert und in der gespeichert Redis-Warteschlange
Dann führt die geplante Linux-Aufgabe (contble) die SQL-Anweisung in der Redis-Warteschlange in einer Schleife aus und aktualisiert den Inhalt der Haupttabelle synchron
Abfrage muss nur die Untertabelle abfragen, nicht die Haupttabelle abfragen
Löschen, suchen Sie zuerst das Objekt anhand der ID. Löschen Sie die Untertabelle, löschen Sie sie dann und drücken Sie dann eine SQL-Anweisung, um die gesamten Tabellendaten in die Nachrichtenwarteschlange zu löschen
und dann eine geplante Aufgabe ausführen, um die gesamten Tabellendaten zu löschen
geplante Aufgabe:
Schema der Unterbibliothek:
Hinweis: Nach dem Betrieb einer Datenbank müssen Sie die Datenbankverbindung schließen, da MySQL sonst denkt, dass sie immer verbunden ist Dieselbe Datenbank
benötigt immer noch das Modul, um zu bestimmen, welche Konfigurationsdatei geladen und mit welcher Datenbank verbunden werden soll
Das Prinzip ähnelt dem neu hinzugefügten
Das Prinzip ist ähnlich
Löschen
Ausführungswarteschlange
Legen Sie die Daten in den Cache, um den Datenbank-Overhead zu sparen. Wenn sie gefunden werden, überprüfen Sie sie direkt in der Datenbank der Cache
Nachdem Sie die Informationen bearbeitet haben, müssen Sie den Cache löschen, sonst lesen Sie immer die zwischengespeicherten Daten anstelle der geänderten Daten
Das obige ist der detaillierte Inhalt vonSo kombinieren Sie PHP mit MySQL für die Datenverarbeitung im zweistelligen Millionenbereich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!