Heim Datenbank MySQL-Tutorial Details zur Entwicklung der MySQL-Architektur von klein nach groß

Details zur Entwicklung der MySQL-Architektur von klein nach groß

Mar 04, 2017 pm 02:53 PM

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)!


Erklärung dieser Website
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

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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

MySQL: Eine Einführung in die beliebteste Datenbank der Welt MySQL: Eine Einführung in die beliebteste Datenbank der Welt Apr 12, 2025 am 12:18 AM

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

Warum MySQL verwenden? Vorteile und Vorteile Warum MySQL verwenden? Vorteile und Vorteile Apr 12, 2025 am 12:17 AM

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

Mysqls Platz: Datenbanken und Programmierung Mysqls Platz: Datenbanken und Programmierung Apr 13, 2025 am 12:18 AM

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

So stellen Sie eine Verbindung zur Datenbank von Apache her So stellen Sie eine Verbindung zur Datenbank von Apache her Apr 13, 2025 pm 01:03 PM

Apache verbindet eine Verbindung zu einer Datenbank erfordert die folgenden Schritte: Installieren Sie den Datenbanktreiber. Konfigurieren Sie die Datei web.xml, um einen Verbindungspool zu erstellen. Erstellen Sie eine JDBC -Datenquelle und geben Sie die Verbindungseinstellungen an. Verwenden Sie die JDBC -API, um über den Java -Code auf die Datenbank zuzugreifen, einschließlich Verbindungen, Erstellen von Anweisungen, Bindungsparametern, Ausführung von Abfragen oder Aktualisierungen und Verarbeitungsergebnissen.

So starten Sie MySQL von Docker So starten Sie MySQL von Docker Apr 15, 2025 pm 12:09 PM

Der Prozess des Startens von MySQL in Docker besteht aus den folgenden Schritten: Ziehen Sie das MySQL -Image zum Erstellen und Starten des Containers an, setzen

MySQLs Rolle: Datenbanken in Webanwendungen MySQLs Rolle: Datenbanken in Webanwendungen Apr 17, 2025 am 12:23 AM

Die Hauptaufgabe von MySQL in Webanwendungen besteht darin, Daten zu speichern und zu verwalten. 1.Mysql verarbeitet effizient Benutzerinformationen, Produktkataloge, Transaktionsunterlagen und andere Daten. 2. Durch die SQL -Abfrage können Entwickler Informationen aus der Datenbank extrahieren, um dynamische Inhalte zu generieren. 3.Mysql arbeitet basierend auf dem Client-Server-Modell, um eine akzeptable Abfragegeschwindigkeit sicherzustellen.

So installieren Sie MySQL in CentOS7 So installieren Sie MySQL in CentOS7 Apr 14, 2025 pm 08:30 PM

Der Schlüssel zur eleganten Installation von MySQL liegt darin, das offizielle MySQL -Repository hinzuzufügen. Die spezifischen Schritte sind wie folgt: Laden Sie den offiziellen GPG -Schlüssel von MySQL herunter, um Phishing -Angriffe zu verhindern. Add MySQL repository file: rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm Update yum repository cache: yum update installation MySQL: yum install mysql-server startup MySQL service: systemctl start mysqld set up booting

Beispiel für Laravel -Einführung Beispiel für Laravel -Einführung Apr 18, 2025 pm 12:45 PM

Laravel ist ein PHP -Framework zum einfachen Aufbau von Webanwendungen. Es bietet eine Reihe leistungsstarker Funktionen, darunter: Installation: Installieren Sie die Laravel CLI weltweit mit Komponisten und erstellen Sie Anwendungen im Projektverzeichnis. Routing: Definieren Sie die Beziehung zwischen der URL und dem Handler in Routen/Web.php. Ansicht: Erstellen Sie eine Ansicht in Ressourcen/Ansichten, um die Benutzeroberfläche der Anwendung zu rendern. Datenbankintegration: Bietet eine Out-of-the-Box-Integration in Datenbanken wie MySQL und verwendet Migration, um Tabellen zu erstellen und zu ändern. Modell und Controller: Das Modell repräsentiert die Datenbankentität und die Controller -Prozesse HTTP -Anforderungen.

See all articles