Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 16305|Odpoveď: 0

[Zdroj] Latencia master-slave databázy vedie k nepresnému vyriešeniu dotazov

[Kopírovať odkaz]
Zverejnené 2020-4-2 20:41:03 | | | |
【Predslov】

Keď dáta dosiahnu určitú hodnotu, databáza sa stane úzkym miestom celého systému a optimalizačná stratégia sa zvyčajne používa ako oddelenie čítania a zápisu, pričom databáza realizuje oddelenie čítania a zápisu oddelením hlavnej databázy od databázy (operácia zápisu z hlavnej databázy, operácia požiadavky na čítanie z databázy);

【Nápady na riešenie dátových oneskorení】

1. Princíp synchronizácie master-slave (tu vezmime najpopulárnejší MySQL ako príklad)

Tu je schéma klasickej synchronizácie MySQL master-slave dát cez binlog:



2. Ako vznikajú problémy?

1. Z vyššie uvedeného schématu nie je ťažké zistiť, že synchronizácia master-slave má určité oneskorenie, ktoré ovplyvňuje veľkosť oneskorenia:

(1) Veľkosť oneskorenia závisí od množstva dát generovaných od poslednej synchronizácie po súčasnosť

(2) Súčasná situácia v sieti medzi servermi

(3) Tlak samotného master-slave servera (CPU, pamäť, IO a pod.)

2. Keďže databázová služba je zvyčajne v intranete a server je pri zakúpení vyššie v konfigurácii (viac, než je skutočná potreba), synchronizácia je v podstate veľmi rýchla, zvyčajne v milisekundách;

3. Vo všeobecných obchodných scenároch možno milisekundovú latenciu ignorovať;



4. Existujú všeobecné a špeciálne prípady a niektoré špeciálne situácie vyžadujú časový rozdiel milisekúnd v reálnom čase. Tu sú bežné riešenia pre tieto špeciálne situácie.

3. Riešenia latencie dát:

1. Schéma 1: Napíš program dvojnásobne (napíš hlavnú databázu a zároveň čítaj databázu)



2. Schéma 2: Prečítajte si program na kontrolu hlavnej databázy



3. Schéma 3: Zapíšte hlavnú databázu a zapíšte cache (nastavte určitý čas vypršania, zvyčajne mierne dlhší ako maximálne oneskorenie synchronizácie databázy), prečítajte program, čítajte cache a čítajte slave databázu



4. Výhody a nevýhody troch schém:

1. Schéma 1: Dvojité písanie spotrebuje určitý výkon, čo je relatívne jednoduché na implementáciu a nie je vhodné pre scenáre s vysokým súbežným zápisom;

2. Schéma 2: Program na čítanie ovplyvní výkon hlavnej knižnice, ktorá je relatívne jednoduchá na implementáciu a nie je vhodná pre scenáre s vysokým súbežným čítaním.

3. Schéma 3: Vo väčšine prípadov čítanie a zápis spotrebujú viac výkonu zápisu, čo je zložitejšie na implementáciu a je vhodné pre vysoké súbežné čítania a zápisy (čítanie a zápis do vyrovnávacej pamäte sú veľmi rýchle);

【Zhrnutie】

1. Implementácia je dôležitá, ale dôležitejšia je myšlienka;

2. Mnohé základné princípy a myšlienky sú univerzálne
Originál:https://blog.csdn.net/zhanghan18 ... le/details/91638443




Predchádzajúci:.NET/C# ado.net vykonáva uložené procedúry s vrátenými hodnotami
Budúci:MSSQL S (NOLOCK) špinavým čítaním
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com