suchen
HeimDatenbankMySQL-TutorialDetails zur Entwicklung der MySQL-Architektur von klein nach groß

Angenommen, eine Website (discuz) hat von Anfang an eine geringe Anzahl von Besuchen und mehrere zehn Millionen tägliche PVs. Spekulieren wir über die Entwicklung ihrer MySQL-Serverarchitektur.

Die erste Phase
Der tägliche PV-Wert der Website-Besuche liegt unter 1 W. Ein einzelner Computer führt Web und DB aus, und es besteht keine Notwendigkeit, eine Optimierung der Architekturebene vorzunehmen (z. B. ist es nicht erforderlich, den zwischengespeicherten Cache zu erhöhen). Derzeit werden Daten oft täglich kalt gesichert, aber manchmal wird aus Gründen der Datensicherheit ein MySQL-Master-Slave eingerichtet.

Die zweite Phase
Der tägliche PV der Website-Besuche erreichte Zehntausende. Zu diesem Zeitpunkt ist die einzelne Maschine bereits etwas ausgelastet Wir müssen Web und Datenbank trennen und wir müssen einen zwischengespeicherten Dienst als Cache erstellen. Mit anderen Worten: In dieser Phase können wir MySQL auch auf einem einzigen Computer ausführen, um die Datenspeicherung und Abfrage der gesamten Website durchzuführen. Wenn Sie MySQL-Master-Slave verwenden, dient dies auch der Datensicherheit.

Die dritte Stufe
Der tägliche PV der Website-Besuche erreichte Hunderttausende. Obwohl dies auch von einer einzelnen Maschine unterstützt werden kann, ist die erforderliche Maschinenkonfiguration viel besser als bei der vorherigen Maschine. Wenn es die Mittel erlauben, können Sie eine Maschine mit hoher Konfiguration kaufen, um den MySQL-Dienst auszuführen. Dies bedeutet jedoch nicht, dass eine Verdoppelung der Konfiguration zu einer Verdoppelung der Leistung führt . Daher werden wir in dieser Phase darüber nachdenken, MySQL-Dienste zu gruppieren, was bedeutet, dass wir mehrere Maschinen zum Ausführen von MySQL verwenden können. Allerdings unterscheiden sich MySQL-Cluster von Web-Clustern. Da wir die Datenkonsistenz berücksichtigen müssen, können wir nicht einfach die Methoden des Web-Clusters (LVS, Nginx-Proxy) anwenden. Die mögliche Architektur ist MySQL-Master-Slave, ein Master und mehrere Slaves . Um die Robustheit der Architektur und Datenintegrität sicherzustellen, kann es nur einen Master und mehrere Slaves geben.

Es gibt ein weiteres Problem, über das wir nachdenken müssen, nämlich, dass unser Programm in der Front-End-Webebene die IP der MySQL-Maschine angibt Maschinen, was passiert im Programm? discuz verfügt tatsächlich über eine Funktion, die die Lese- und Schreibtrennung von MySQL unterstützt. Das heißt, wir können mehrere Maschinen zum Ausführen von MySQL verwenden, von denen eine zum Schreiben und die anderen zum Lesen dienen. Wir müssen nur die Lese- und Schreib-IPs im Programm konfigurieren, und das Programm unterscheidet die Maschinen automatisch. Wenn wir nicht die mit discuz gelieferte Konfiguration verwenden, können wir natürlich auch eine Software namens mysql-proxy verwenden, um eine Lese-/Schreibtrennung zu erreichen. Es unterstützt einen Master- und mehrere Slave-Modus.

Die vierte Stufe
Die tägliche Zahl der Website-Besuche erreicht mehrere Millionen. Beim vorherigen Ein-Master-Mehrfach-Slave-Modell sind Engpässe aufgetreten, da mit zunehmender Anzahl von Website-Besuchen auch die Lesemenge in der Datenbank zunimmt. Wir müssen mehr Slaves hinzufügen, aber wenn die Anzahl der Slaves auf Dutzende ansteigt, Aufgrund der Tatsache, dass alle Bin-Protokolle an alle Slaves verteilt werden müssen, ist dieser Vorgang selbst eine sehr umständliche Angelegenheit. In Verbindung mit häufigem Lesen führt dies unweigerlich zu einer großen Verzögerung bei der Synchronisierung der Daten von den Slaves. Daher können wir eine Optimierung vornehmen, den ursprünglichen Master und die mehreren Slaves von MySQL in einen Master und einen Slave ändern, und dann wird der Slave als Master für andere Slaves dienen. Der ehemalige Master ist nur für das Schreiben von Website-Geschäften verantwortlich. und die nachfolgenden Slaves Es ist nicht für die Geschäfte der Website verantwortlich, sondern nur für die Synchronisierung des Bin-Logs mit anderen Slaves. Auf diese Weise können Sie weiterhin mehrere Slave-Bibliotheken stapeln.

Die fünfte Phase
Als der tägliche Pv der Website-Besuche 10 Millionen erreichte, stellten wir fest, dass die Anzahl der Schreibvorgänge auf die Die Website ist sehr groß. In unserer vorherigen Architektur gab es nur einen Master, und der Master hier ist zu einem Engpass geworden. Daher sind weitere Anpassungen erforderlich. Beispielsweise können wir das Unternehmen in Module, separate benutzerbezogene Module, separate Berechtigungen, Punkte usw. unterteilen, eine separate Bibliothek ausführen und diese dann als Master-Slave verwenden, die sogenannte Unterbibliothek . Natürlich können Sie auch den Breitengrad ändern, die Tabellen mit großem Zugriffs- oder Schreibvolumen trennen und auf einem Server ausführen. Sie können eine Tabelle auch in mehrere kleine Tabellen aufteilen. Dieser Arbeitsschritt bringt einige Verfahrensänderungen mit sich, daher ist es notwendig, im Voraus mit Entwicklungskollegen zu kommunizieren und zu entwerfen. Kurz gesagt, was Sie in diesem Schritt tun müssen, ist die Unterdatenbank und Untertabelle.

Schreiben Sie auf die Rückseite
Für die weitere Entwicklung teilen Sie den großen Tisch einfach weiter in kleine Tische auf. Die inländische Alibaba Taobao-Website verfügt über eine große Datenmenge. Ihre MySQL-Architektur folgt dem Prinzip der Unterdatenbank und der Untertabelle. kann nach Käufern und Verkäufern, nach Zeit usw. unterteilt werden.

Das Obige zeigt die Details des Entwicklungsprozesses der MySQL-Architektur von klein nach groß. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wie identifizieren und optimieren Sie langsame Abfragen in MySQL? (Langsames Abfrageprotokoll, Performance_schema)Wie identifizieren und optimieren Sie langsame Abfragen in MySQL? (Langsames Abfrageprotokoll, Performance_schema)Apr 10, 2025 am 09:36 AM

Um die MySQL -Abfrage zu optimieren, müssen SlowQuerylog und Performance_Schema verwendet werden: 1. Aktivieren Sie SlowQuerylog und setzen Sie Schwellenwerte, um langsame Abfragen aufzuzeichnen; 2. Verwenden Sie Performance_Schema, um die Details zur Ausführung von Abfragen zu analysieren, Leistungs Engpässe zu finden und zu optimieren.

MySQL und SQL: Wesentliche Fähigkeiten für EntwicklerMySQL und SQL: Wesentliche Fähigkeiten für EntwicklerApr 10, 2025 am 09:30 AM

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

Beschreiben Sie den asynchronen Master-Slave-Replikationsprozess von MySQL.Beschreiben Sie den asynchronen Master-Slave-Replikationsprozess von MySQL.Apr 10, 2025 am 09:30 AM

MySQL Asynchronous Master-Slave-Replikation ermöglicht die Datensynchronisation durch Binlog, die die Leseleistung und die hohe Verfügbarkeit verbessert. 1) Der Master -Server -Datensatz ändert sich am Binlog; 2) Der Slave -Server liest Binlog über E/A -Threads; 3) Der Server -SQL -Thread wendet BinLog an, um Daten zu synchronisieren.

MySQL: Einfache Konzepte für einfaches LernenMySQL: Einfache Konzepte für einfaches LernenApr 10, 2025 am 09:29 AM

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

MySQL: Eine benutzerfreundliche Einführung in DatenbankenMySQL: Eine benutzerfreundliche Einführung in DatenbankenApr 10, 2025 am 09:27 AM

Die Installation und die grundlegenden Vorgänge von MySQL umfassen: 1. MySQL herunterladen und installieren, das Stammbenutzerkennwort festlegen. 2. Verwenden Sie SQL -Befehle, um Datenbanken und Tabellen zu erstellen, wie z. 3. Ausführen von CRUD -Operationen, verwenden Sie Einfügen, auswählen, aktualisieren, Befehle löschen; 4. Erstellen Sie Indizes und gespeicherte Verfahren, um die Leistung zu optimieren und komplexe Logik zu implementieren. Mit diesen Schritten können Sie MySQL -Datenbanken von Grund auf neu erstellen und verwalten.

Wie funktioniert der InnoDB Puffer Pool und warum ist es für die Leistung von entscheidender Bedeutung?Wie funktioniert der InnoDB Puffer Pool und warum ist es für die Leistung von entscheidender Bedeutung?Apr 09, 2025 am 12:12 AM

InnoDbbufferpool verbessert die Leistung von MySQL -Datenbanken durch das Laden von Daten und Indexseiten in den Speicher. 1) Die Datenseite wird in das Bufferpool geladen, um die Festplatten -E/A zu reduzieren. 2) Schmutzige Seiten sind regelmäßig markiert und auf der Festplatte aktualisiert. 3) LRU -Algorithmusverwaltungsdatenseite Eliminierung. 4) Der Lese-Out-Mechanismus lädt die möglichen Datenseiten im Voraus.

MySQL: Die einfache Datenverwaltung für AnfängerMySQL: Die einfache Datenverwaltung für AnfängerApr 09, 2025 am 12:07 AM

MySQL ist für Anfänger geeignet, da es einfach zu installieren, leistungsfähig und einfach zu verwalten ist. 1. Einfache Installation und Konfiguration, geeignet für eine Vielzahl von Betriebssystemen. 2. Unterstützung grundlegender Vorgänge wie Erstellen von Datenbanken und Tabellen, Einfügen, Abfragen, Aktualisieren und Löschen von Daten. 3. Bereitstellung fortgeschrittener Funktionen wie Join Operations und Unterabfragen. 4. Die Leistung kann durch Indexierung, Abfrageoptimierung und Tabellenpartitionierung verbessert werden. 5. Backup-, Wiederherstellungs- und Sicherheitsmaßnahmen unterstützen, um die Datensicherheit und -konsistenz zu gewährleisten.

Wann könnte ein vollständiger Tabellen -Scan schneller sein als einen Index in MySQL?Wann könnte ein vollständiger Tabellen -Scan schneller sein als einen Index in MySQL?Apr 09, 2025 am 12:05 AM

Die volle Tabellenscannung kann in MySQL schneller sein als die Verwendung von Indizes. Zu den spezifischen Fällen gehören: 1) das Datenvolumen ist gering; 2) Wenn die Abfrage eine große Datenmenge zurückgibt; 3) wenn die Indexspalte nicht sehr selektiv ist; 4) Wenn die komplexe Abfrage. Durch Analyse von Abfrageplänen, Optimierung von Indizes, Vermeidung von Überindex und regelmäßiger Wartung von Tabellen können Sie in praktischen Anwendungen die besten Auswahlmöglichkeiten treffen.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen