Empfohlen: „PHP-Video-Tutorial“
Eine Bestelltabelle von 100 Millionen kann in fünf Tabellen unterteilt werden, sodass jede Tabelle nur 20 Millionen Daten enthält, die gemeinsam genutzt werden Es stellt sich heraus, dass der Druck einer Tabelle nach bestimmten Bedingungen aufgeteilt werden muss. Hier können Tabellen nach Regionen unterteilt werden. Es wird eine Middleware benötigt, um zu steuern, zu welcher Tabelle die gewünschten Daten gefunden werden sollen.
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. Beim Ändern, Löschen und Lesen muss die Haupttabelle nicht mehr verwendet werden.
1. Was ist eine Nachrichtenwarteschlange?
Container, der Nachrichten während des Nachrichtenweitergabeprozesses speichert
2, die historischen Gründe für die Generierung von Nachrichtenwarteschlangen
Eigenschaften von Nachrichtenwarteschlangen: First In, First Out
Speichern Sie zuerst die auszuführende SQL-Anweisung in der Nachrichtenwarteschlange , und folgen Sie dann dem reibungslosen asynchronen Ablauf in der eingefügten Datenbank
Anwendung: Sina, legen Sie zuerst die Sofortkommentare in die Nachrichtenwarteschlange ein und fügen Sie dann die SQL-Anweisungen in der Nachrichtenwarteschlange nacheinander durch geplante Aufgaben in die Datenbank ein
Betreiben Sie die zu ändernde Untertabelle
Bei dieser Änderung liegt ein Problem vor. Die Daten in der Haupttabelle und der Untertabelle sind inkonsistent konsistent?
Nach Abschluss der Änderung werden die Daten der Haupttabelle geändert und in der Redis-Warteschlange gespeichert.
Dann wird die von Linux geplante Aufgabe ausgeführt (contble) Schleifen zum Ausführen der SQL-Anweisung in der Redis-Warteschlange, synchrones Aktualisieren des Inhalts der Haupttabelle
Abfrage muss nur die Untertabelle abfragen , Fragen Sie nicht die Haupttabelle ab
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.
Dann Führen Sie eine geplante Aufgabe aus, um die gesamten Tabellendaten zu löschen. Geplante Aufgabe:
Hinweis: Nach dem Betrieb einer Datenbank müssen Sie die Datenbankverbindung schließen, da MySQL sonst denkt, dass es sich um dieselbe Datenbank handelt, die verbunden wurde
Es ist weiterhin erforderlich, die Datenbankverbindung zu verwenden Modul, um zu bestimmen, welche Konfigurationsdateiverbindung geladen werden soll Welche Datenbank
Das Prinzip ist das gleiche wie das neu hinzugefügte
Prinzip ist ähnlich
Löschen Sie die
MySQL-Anwendung mit verteiltem Cache (Memcache)
Das obige ist der detaillierte Inhalt vonPHP in Kombination mit MySQL realisiert die Datenverarbeitung im zweistelligen Millionenbereich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!