Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 16305|Antwort: 0

[Quelle] Datenbank-Master-Slave-Latenz führt zu ungenauer Abfragelösung

[Link kopieren]
Veröffentlicht am 2.4.2020, 20:41:03 | | | |
【Vorwort】

Wenn die Daten eine bestimmte Menge erreichen, wird die Datenbank zum Engpass des gesamten Systems, und die Optimierungsstrategie wird in der Regel als Lese- und Schreibtrennung angewendet, wobei die Datenbank Lese- und Schreibtrennung realisiert, indem sie die Hauptdatenbank von der Datenbank trennt (Schreibanforderungsoperation aus der Hauptdatenbank, Leseanfrageoperation aus der Datenbank);

【Ideen zur Lösung von Datenverzögerungen】

1. Das Prinzip der Master-Slave-Synchronisation (hier nehmen wir das beliebteste MySQL als Beispiel)

Hier ist ein schematisches Diagramm einer klassischen MySQL-Master-Slave-Datensynchronisation mittels Binlog:



2. Wie entstehen Probleme?

1. Aus dem obigen Schaltplan ist es nicht schwer festzustellen, dass Master-Slave-Synchronisation eine bestimmte Verzögerung hat, die die Verzögerungsgröße beeinflusst:

(1) Die Größe der Verzögerung hängt von der Datenmenge ab, die von der letzten Synchronisation bis zur Gegenwart erzeugt wird

(2) Die aktuelle Netzwerksituation zwischen Servern

(3) Der Druck des Master-Slave-Servers selbst (CPU, Speicher, IO usw.)

2. Da der Datenbankdienst in der Regel im Intranet liegt und der Server beim Kauf höher in der Konfiguration ist (mehr als der tatsächliche Bedarf), erfolgt die Synchronisation im Grunde sehr schnell, meist in Millisekunden;

3. In allgemeinen Geschäftsszenarien kann die Millisekunden-Latenz ignoriert werden;



4. Es gibt allgemeine und spezielle Fälle, und einige besondere Situationen erfordern einen Echtzeit-Millisekundenzeit-Zeitunterschied. Hier sind gängige Lösungen für diese besonderen Situationen.

3. Lösungen für Datenlatenz:

1. Schema 1: Schreiben Sie das Programmdouble (schreiben Sie gleichzeitig die Hauptdatenbank und lesen Sie die Datenbank)



2. Schema 2: Lesen Sie das Programm, um die Hauptdatenbank zu überprüfen



3. Schema 3: Schreiben Sie die Hauptdatenbank und schreiben Sie den Cache (setzen Sie eine bestimmte Verfallszeit, die in der Regel etwas länger als die maximale Verzögerung der Datenbanksynchronisation ist), lesen Sie das Programm, lesen Sie den Cache und lesen Sie die Slave-Datenbank



4. Vor- und Nachteile der drei Verfahren:

1. Schema 1: Doppeltes Schreiben verbraucht eine gewisse Leistung, was relativ einfach umzusetzen ist und für Szenarien mit hohem gleichzeitigem Schreiben nicht geeignet ist;

2. Schema 2: Das Leseprogramm beeinflusst die Leistung der Hauptbibliothek, die relativ einfach umzusetzen ist und für Szenarien mit hoher gleichzeitiger Lesezeit nicht geeignet ist.

3. Schema 3: In den meisten Fällen verbrauchen Lesen und Schreiben mehr Schreibleistung, was komplexer zu implementieren ist und sowohl für hohe gleichzeitige Lese- als auch Schreibvorgänge geeignet ist (Cache-Lese- und Schreibvorgänge sind sehr schnell);

【Zusammenfassung】

1. Die Umsetzung ist wichtig, aber noch wichtiger ist die Idee;

2. Viele zugrundeliegende Prinzipien und Ideen sind universell
Original:https://blog.csdn.net/zhanghan18 ... le/details/91638443




Vorhergehend:.net/c# ado.net führt gespeicherte Prozeduren mit Rückgabewerten aus
Nächster:MSSQL MIT (NOLOCK) schmutzigem Lesen
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com