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.
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.
Lassen 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
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)
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

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.

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.

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 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.

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.

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 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.

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.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Dreamweaver CS6
Visuelle Webentwicklungstools

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

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
Leistungsstarke integrierte PHP-Entwicklungsumgebung