Heim  >  Artikel  >  Themen  >  PHP in Kombination mit MySQL führt zig Millionen Datenverarbeitungen durch

PHP in Kombination mit MySQL führt zig Millionen Datenverarbeitungen durch

coldplay.xixi
coldplay.xixinach vorne
2020-12-22 17:55:203804Durchsuche

1 Eine Bestelltabelle von 100 Millionen kann in fünf Tabellen unterteilt werden, sodass jede Tabelle nur 20 Millionen Daten enthält und den Druck der ursprünglichen Tabelle teilt. Die Untertabellen müssen hier unterteilt werden nach Regionen unterteilt werden, ist eine Middleware erforderlich, 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.

PHP in Kombination mit MySQL führt zig Millionen Datenverarbeitungen durch

redis Message Queue

1 Was ist eine Nachrichtenwarteschlange? Container, der Nachrichten während des Nachrichtenweitergabeprozesses speichert2, 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

PHP 结合 MySQL 千万级数据处理Ändern

Betreiben Sie die zu ändernde Untertabelle

Bei dieser Änderung liegt ein Problem vor. Die Daten in der Haupttabelle und der Untertabelle sind inkonsistent -Tabelle konsistent?

PHP 结合 MySQL 千万级数据处理Die Redis-Warteschlange hält die Daten der Haupttabelle und der Untertabellen konsistent


Nach Abschluss der Änderung werden die Daten der Haupttabelle geändert und in der Redis-Warteschlange gespeichert

Dann das Linux Geplante Aufgabenschleifen (contble), um die Daten in der SQL-Anweisung der Redis-Warteschlange auszuführen und den Inhalt der Haupttabelle synchron zu aktualisieren Um die Untertabelle abzufragen, fragen Sie nicht die Haupttabelle ab

Zuerst löschen Suchen Sie anhand der ID die zu löschende Untertabelle, löschen Sie sie und drücken Sie dann eine SQL-Anweisung, um die gesamten Tabellendaten zu löschen Nachrichtenwarteschlange

Führen Sie dann eine geplante Aufgabe aus, um die gesamten Tabellendaten zu löschen PHP 结合 MySQL 千万级数据处理

Geplante Aufgabe:

MySQL-verteilte ZweigbibliothekPHP 结合 MySQL 千万级数据处理

Idee einer ZweigbibliothekPHP 结合 MySQL 千万级数据处理

Schema der Zweigbibliothek :

Verteilte MySQL-Zweigdatenbank (erhöht) Wird immer noch durch Modulus bestimmt. Welche Konfigurationsdatei soll geladen werden, um eine Verbindung zu welcher Datenbank herzustellen?

PHP 结合 MySQL 千万级数据处理Legen Sie die Daten in den Cache, um den Datenbank-Overhead zu sparen. Wenn nicht, gehen Sie zur Datenbank, um sie zu überprüfen, und speichern Sie sie dann im Cache. Sie müssen den Cache löschen, sonst lesen Sie immer die zwischengespeicherten Daten und nicht die geänderten Daten.

Das obige ist der detaillierte Inhalt vonPHP in Kombination mit MySQL führt zig Millionen Datenverarbeitungen durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen