suchen
HeimDatenbankMySQL-TutorialDie Entwicklung der MySQL-Anwendungsarchitektur in großen Websites

Dieser Artikel beschreibt hauptsächlich die Entwicklung der MySQL-Architektur unter verschiedenen gleichzeitigen Zugriffsebenen der Website

Skalierbarkeit

Die Skalierbarkeit der Architektur hängt oft eng mit der Parallelität zusammen, und es gibt keine Parallelität Wachstum, es besteht keine Notwendigkeit, eine hochskalierbare Architektur aufzubauen. Es gibt zwei häufig verwendete Erweiterungsmethoden: Vertikale Erweiterung durch Ersetzen durch bessere Maschinen und Ressourcen um eine Skalierung zu erreichen und die Servicefähigkeiten zu verbessern

Scale-out: Horizontale Erweiterung durch Hinzufügen von Knoten (Maschinen), um eine Skalierung zu erreichen und die Servicefähigkeiten zu verbessern

Für Anwendungen mit hoher Parallelität im Internet gibt es keine Ich bezweifle, dass der vertikale Kauf von High-End-Maschinen für uns schon immer ein Tabuthema war und keine langfristige Lösung darstellt. Was ist nach der Scale-out-Theorie der ideale Stand der Skalierbarkeit?

Der ideale Zustand der Skalierbarkeit

Wenn ein Dienst einer höheren Parallelität ausgesetzt ist, kann er die vom Dienst unterstützte Parallelität durch einfaches Hinzufügen von Maschinen verbessern und die Anzahl der Verbindungen im Maschinenprozess erhöhen hat keine Auswirkungen auf den Dienst (keine Ausfallzeit). Dies ist der ideale Zustand der Skalierbarkeit!

Entwicklung der Architektur

V1.0 Einfache Website-Architektur

Die Architektur hinter einer einfachen kleinen Website oder Anwendung kann sehr einfach sein und für Daten ist nur eine MySQL-Instanz erforderlich Speicherung Um die Anforderungen zum Lesen und Schreiben von Daten zu erfüllen (Datensicherungsinstanzen werden hier ignoriert), speichern Websites in diesem Zeitraum im Allgemeinen alle Informationen in einer Datenbankinstanz.

Die Entwicklung der MySQL-Anwendungsarchitektur in großen Websites

Lassen Sie uns in einer solchen Architektur einen Blick auf die Engpässe bei der Datenspeicherung werfen.

1. Die Gesamtgröße der Daten passt nicht in eine Maschine

2. Der Index der Daten (B+ Baum) passt nicht in den Speicher einer Maschine

3. Die Anzahl der Besuche (gemischtes Lesen und Schreiben) kann von einer Instanz nicht toleriert werden.

Erst wenn eines oder mehrere der oben genannten drei Dinge erfüllt sind, müssen wir über die Weiterentwicklung zur nächsten Instanz nachdenken Ebene. Daraus können wir erkennen, dass diese Architektur für viele kleine Unternehmen und kleine Anwendungen tatsächlich ausreicht. Eine genaue Bewertung des anfänglichen Datenvolumens ist schließlich ein wichtiger Schritt, um ein Überdesign zu verhindern Sorgen Sie sich um die unmöglichen Dinge und verschwenden Sie Ihre Erfahrung.

Hier ist ein einfaches Beispiel von mir: 16G-Speicher kann einen Index von etwa 2000 W Datenzeilen enthalten. Ein einfacher gemischter Lese- und Schreibzugriff beträgt etwa 3000/s Ist Ihr Anwendungsszenario

V2.0 vertikale Aufteilung

Wenn bei V1.0 ein Engpass auftritt, ist die erste und einfachste Aufteilungsmethode die vertikale Aufteilung. Was ist vertikal? Aus geschäftlicher Sicht werden Daten, die nicht stark miteinander verknüpft sind, in verschiedene Instanzen aufgeteilt, um das Ziel zu erreichen, Engpässe zu beseitigen. Im Beispiel in der Abbildung werden Benutzerinformationsdaten und Geschäftsdaten in drei verschiedene Instanzen aufgeteilt. Für Szenarien mit vielen wiederholten Lesetypen können wir auch eine Cache-Ebene hinzufügen, um den Druck auf die Datenbank zu verringern.

Die Entwicklung der MySQL-Anwendungsarchitektur in großen WebsitesLassen Sie uns in einer solchen Architektur einen Blick auf die Engpässe bei der Datenspeicherung werfen.

1. Einzelinstanz-Einzelunternehmen haben immer noch den in Version 1.0 erwähnten Engpass

Wenn Sie auf einen Engpass stoßen, können Sie ein Upgrade auf eine höhere V-Version dieses Artikels in Betracht ziehen, wenn Leseanforderungen dazu führen Wenn ein Leistungsengpass auftritt, können Sie ein Upgrade auf V3.0 und bei anderen Engpässen ein Upgrade auf V4.0 in Betracht ziehen

V3.0-Master-Slave-Architektur

Diese Art von Architektur löst hauptsächlich das Leseproblem unter der V2.0-Architektur. Sie migriert den Lesedruck durch Anhängen einer Echtzeit-Datensicherung an die Instanz Szenario Durch die Master-Slave-Struktur widersteht die Master-Bibliothek dem Schreibdruck und die Slave-Bibliothek teilt den Lesedruck. Für Anwendungen mit weniger Schreiben und mehr Lesen ist die V3.0-Master-Slave-Architektur voll leistungsfähig

Die Entwicklung der MySQL-Anwendungsarchitektur in großen Websites

Welche Engpässe bei der Datenspeicherung gibt es in einer solchen Architektur?

1. Die Hauptbibliothek kann den Schreibaufwand nicht ertragen

V4.0 horizontale Aufteilung

Wenn die V2.0 V3.0-Lösung auf einen Engpass stößt, kann dies der Fall sein Horizontale Aufteilung Es gibt einen großen Unterschied zwischen horizontaler Aufteilung und vertikaler Aufteilung. Das Ergebnis der vertikalen Aufteilung ist, dass eine Instanz über die gesamte Datenmenge verfügt, nach der horizontalen Aufteilung jedoch nur 1/n der gesamten Datenmenge Nehmen Sie die Aufteilung der Benutzerinformationen in der folgenden Abbildung als Beispiel. Jeder Cluster enthält 1/3 der gesamten Daten. (Hinweis: Dies ist nicht der Fall.) Nennen Sie es eine einzelne Instanz statt eines Clusters (der einen kleinen MySQL-Cluster einschließlich Master und Slave darstellt)

Die Entwicklung der MySQL-Anwendungsarchitektur in großen Websites

Wie leitet man Daten weiter?

1. Bereichsaufteilung

Sharding-Schlüssel werden in kontinuierlichen Intervallen weitergeleitet und im Allgemeinen in Szenarien mit strengen Anforderungen an die automatische Inkrementierung von IDs verwendet, z. B. Userid, ein kleines Beispiel für Userid-Bereich: Benutzer-ID verwenden 3000W-Aufteilung für Bereich Nr. 1 Cluster-Benutzer-ID 1-3000W Nr. 2 Cluster-Benutzer-ID 3001W-6000W

2. Listenaufteilung

Die Listenaufteilung hat die gleiche Idee wie die Bereichsaufteilung, beide werden von durchgeführt Für die Weiterleitung an verschiedene Cluster werden verschiedene Sharding-Schlüssel verwendet, die spezifischen Methoden sind jedoch etwas unterschiedlich. Die Liste wird hauptsächlich für Situationen verwendet, in denen der Sharding-Schlüssel kein kontinuierliches Intervall ist und die Sequenz in einen Cluster fällt


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 wirkt sich die MySQL -Kardinalität auf die Abfrageleistung aus?Wie wirkt sich die MySQL -Kardinalität auf die Abfrageleistung aus?Apr 14, 2025 am 12:18 AM

Die MySQL -Idium -Kardinalität hat einen signifikanten Einfluss auf die Abfrageleistung: 1. Hoher Kardinalitätsindex kann den Datenbereich effektiver einschränken und die Effizienz der Abfrage verbessern. 2. Niedriger Kardinalitätsindex kann zu einem vollständigen Tischscannen führen und die Abfrageleistung verringern. 3. Im gemeinsamen Index sollten hohe Kardinalitätssequenzen vorne platziert werden, um die Abfrage zu optimieren.

MySQL: Ressourcen und Tutorials für neue BenutzerMySQL: Ressourcen und Tutorials für neue BenutzerApr 14, 2025 am 12:16 AM

Der MySQL -Lernpfad umfasst Grundkenntnisse, Kernkonzepte, Verwendungsbeispiele und Optimierungstechniken. 1) Verstehen Sie grundlegende Konzepte wie Tabellen, Zeilen, Spalten und SQL -Abfragen. 2) Lernen Sie die Definition, die Arbeitsprinzipien und die Vorteile von MySQL kennen. 3) Master grundlegende CRUD -Operationen und fortgeschrittene Nutzung wie Indizes und gespeicherte Verfahren. 4) KON -Debugging- und Leistungsoptimierungsvorschläge, wie z. B. rationale Verwendung von Indizes und Optimierungsabfragen. In diesen Schritten haben Sie einen vollen Verständnis für die Verwendung und Optimierung von MySQL.

Reale MySQL: Beispiele und AnwendungsfälleReale MySQL: Beispiele und AnwendungsfälleApr 14, 2025 am 12:15 AM

Die realen Anwendungen von MySQL umfassen grundlegende Datenbankdesign und komplexe Abfrageoptimierung. 1) Grundnutzung: Wird zum Speichern und Verwalten von Benutzerdaten verwendet, z. B. das Einfügen, Abfragen, Aktualisieren und Löschen von Benutzerinformationen. 2) Fortgeschrittene Nutzung: Verwandte komplexe Geschäftslogik wie Auftrags- und Bestandsverwaltung von E-Commerce-Plattformen. 3) Leistungsoptimierung: Verbesserung der Leistung durch rationale Verwendung von Indizes, Partitionstabellen und Abfrage -Caches.

SQL -Befehle in MySQL: Praktische BeispieleSQL -Befehle in MySQL: Praktische BeispieleApr 14, 2025 am 12:09 AM

SQL -Befehle in MySQL können in Kategorien wie DDL, DML, DQL und DCL unterteilt werden und werden verwendet, um Datenbanken und Tabellen zu erstellen, zu ändern, zu löschen, Daten einfügen, aktualisieren, Daten löschen und komplexe Abfragebetriebe durchführen. 1. Die grundlegende Verwendung umfasst die Erstellungstabelle erstellbar, InsertInto -Daten einfügen und Abfragedaten auswählen. 2. Die erweiterte Verwendung umfasst die Zusammenarbeit mit Tabellenverbindungen, Unterabfragen und GroupBy für die Datenaggregation. 3.. Häufige Fehler wie Syntaxfehler, Datentyp -Nichtübereinstimmung und Berechtigungsprobleme können durch Syntaxprüfung, Datentypkonvertierung und Berechtigungsmanagement debuggen. 4. Vorschläge zur Leistungsoptimierung umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verwendung von Transaktionen, um die Datenkonsistenz sicherzustellen.

Wie geht InnoDB mit der Einhaltung der Säure um?Wie geht InnoDB mit der Einhaltung der Säure um?Apr 14, 2025 am 12:03 AM

InnoDB erreicht Atomizität durch Ungewöhnung, Konsistenz und Isolation durch Verriegelungsmechanismus und MVCC sowie Persistenz durch Redolog. 1) Atomizität: Verwenden Sie Unolog, um die Originaldaten aufzuzeichnen, um sicherzustellen, dass die Transaktion zurückgerollt werden kann. 2) Konsistenz: Stellen Sie die Datenkonsistenz durch Verriegelung auf Zeilenebene und MVCC sicher. 3) Isolierung: Unterstützt mehrere Isolationsniveaus und wird standardmäßig WiederholungSead verwendet. 4) Persistenz: Verwenden Sie Redolog, um Modifikationen aufzuzeichnen, um sicherzustellen, dass die Daten für lange Zeit gespeichert werden.

Mysqls Platz: Datenbanken und ProgrammierungMysqls Platz: Datenbanken und ProgrammierungApr 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

MySQL: Von kleinen Unternehmen bis zu großen UnternehmenMySQL: Von kleinen Unternehmen bis zu großen UnternehmenApr 13, 2025 am 12:17 AM

MySQL ist für kleine und große Unternehmen geeignet. 1) Kleinunternehmen können MySQL für das grundlegende Datenmanagement verwenden, z. B. das Speichern von Kundeninformationen. 2) Große Unternehmen können MySQL verwenden, um massive Daten und komplexe Geschäftslogik zu verarbeiten, um die Abfrageleistung und die Transaktionsverarbeitung zu optimieren.

Was liest Phantom und wie verhindert InnoDB sie (Sperren des nächsten Schlägers)?Was liest Phantom und wie verhindert InnoDB sie (Sperren des nächsten Schlägers)?Apr 13, 2025 am 12:16 AM

InnoDB verhindert effektiv das Phantom-Lesen durch den Mechanismus für den nächsten Kleien. 1) Nächstschlüsselmesser kombiniert Zeilensperr- und Gap-Sperre, um Datensätze und deren Lücken zu sperren, um zu verhindern, dass neue Datensätze eingefügt werden. 2) In praktischen Anwendungen kann durch Optimierung der Abfragen und Anpassung der Isolationsstufen die Verringerungswettbewerb reduziert und die Gleichzeitleistung verbessert werden.

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
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung