Heim  >  Artikel  >  Backend-Entwicklung  >  PHP in Kombination mit MySQL realisiert die Datenverarbeitung im zweistelligen Millionenbereich

PHP in Kombination mit MySQL realisiert die Datenverarbeitung im zweistelligen Millionenbereich

藏色散人
藏色散人nach vorne
2020-11-18 15:10:495041Durchsuche

Empfohlen: „PHP-Video-Tutorial

Idee zur Aufteilung von MySQL-Tabellen


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.

PHP 结合 MySQL 千万级数据处理

Redis-Nachrichtenwarteschlange

1. Was ist eine Nachrichtenwarteschlange?
Container, der Nachrichten während des Nachrichtenweitergabeprozesses speichert
2, die historischen Gründe für die Generierung von Nachrichtenwarteschlangen

PHP 结合 MySQL 千万级数据处理

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

Ändern

Betreiben Sie die zu ändernde Untertabelle

PHP 结合 MySQL 千万级数据处理

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

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.

PHP 结合 MySQL 千万级数据处理

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

PHP 结合 MySQL 千万级数据处理

Verteilte MySQL-Untertabelle (prüfen, löschen)

Abfrage muss nur die Untertabelle abfragen , Fragen Sie nicht die Haupttabelle ab

PHP 结合 MySQL 千万级数据处理

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:

PHP 结合 MySQL 千万级数据处理

Verteilte MySQL-Zweigdatenbank (erhöht)

PHP 结合 MySQL 千万级数据处理
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

PHP 结合 MySQL 千万级数据处理

MySQL-Datenbank für verteilte Zweige (Änderung)

Das Prinzip ist das gleiche wie das neu hinzugefügte

PHP 结合 MySQL 千万级数据处理

MySQL-Datenbank für verteilte Zweige (prüfen, löschen). )

Prinzip ist ähnlich

PHP 结合 MySQL 千万级数据处理
Löschen Sie die

PHP 结合 MySQL 千万级数据处理
MySQL-Anwendung mit verteiltem Cache (Memcache)

Legen Sie die Daten in den Cache, um Datenbankaufwand zu sparen. Überprüfen Sie zuerst den Cache Wenn nicht, gehen Sie zur Datenbank und speichern Sie sie im Cache. Nachdem Sie die Informationen bearbeitet haben, müssen Sie den Cache löschen. Andernfalls werden immer die zwischengespeicherten Daten gelesen geänderte Daten

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!

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