Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 16305|Atsakyti: 0

[Šaltinis] Duomenų bazės pagrindinio-pavaldinio delsa lemia netikslų užklausų sprendimą

[Kopijuoti nuorodą]
Publikuota: 2020-4-2 20:41:03 | | | |
【Pratarmė】

Kai duomenys pasieks tam tikrą kiekį, duomenų bazė taps visos sistemos kliūtimi, o optimizavimo strategija paprastai priimama kaip skaitymo ir rašymo atskyrimas, o duomenų bazė realizuoja skaitymo ir rašymo atskyrimą padalijant pagrindinę duomenų bazę nuo duomenų bazės (rašymo užklausos operacija iš pagrindinės duomenų bazės, skaitymo užklausos operacija iš duomenų bazės);

【Idėjos, kaip išspręsti duomenų vėlavimus】

1. "Master-slave" sinchronizavimo principas (čia kaip pavyzdį imame populiariausią "MySQL")

Čia yra klasikinio MySQL pagrindinio ir pavaldaus duomenų sinchronizavimo per binlog schema:



2. Kaip kyla problemų?

1. Iš aukščiau pateiktos schemos nesunku nustatyti, kad pagrindinio ir pavaldaus sinchronizavimas turi tam tikrą vėlavimą, kuris turi įtakos delsos dydžiui:

(1) Delsos dydis priklauso nuo duomenų, sugeneruotų nuo paskutinio sinchronizavimo iki dabartinio

(2) Dabartinė tinklo situacija tarp serverių

(3) Paties pagrindinio-pavaldaus serverio (CPU, atminties, IO ir kt.) spaudimas

2. Kadangi duomenų bazės paslauga paprastai yra intranete, o perkant serveris bus aukštesnės konfigūracijos (daugiau nei faktinis poreikis), sinchronizavimas iš esmės yra labai greitas, paprastai per milisekundes;

3. Bendruose verslo scenarijuose milisekundžių delsa gali būti ignoruojama;



4. Yra bendrų ir ypatingų atvejų, o kai kurioms ypatingoms situacijoms reikalingas milisekundžių laiko skirtumas realiuoju laiku. Čia pateikiami įprasti sprendimai šioms ypatingoms situacijoms.

3. Duomenų delsos sprendimai:

1. 1 schema: parašykite programą dvigubai (parašykite pagrindinę duomenų bazę ir tuo pačiu metu perskaitykite duomenų bazę)



2. 2 schema: perskaitykite programą, kad patikrintumėte pagrindinę duomenų bazę



3. 3 schema: parašykite pagrindinę duomenų bazę ir parašykite talpyklą (nustatykite tam tikrą galiojimo laiką, paprastai šiek tiek didesnį nei maksimalus duomenų bazės sinchronizavimo vėlavimas), perskaitykite programą, perskaitykite talpyklą ir perskaitykite vergų duomenų bazę



4. Trijų schemų privalumai ir trūkumai:

1. 1 schema: Dvigubas rašymas sunaudos tam tikrą našumą, kuris yra gana paprastas įgyvendinti ir netinka dideliems vienalaikio rašymo scenarijams;

2. 2 schema: skaitymo programa turės įtakos pagrindinės bibliotekos našumui, kurią gana paprasta įgyvendinti ir kuri netinka didelio skaitymo vienu metu scenarijams.

3. 3 schema: Daugeliu atvejų skaitymas ir rašymas sunaudoja daugiau rašymo našumo, kurį sudėtingiau įgyvendinti ir tinka tiek dideliam skaitymui ir rašymui vienu metu (talpyklos skaitymas ir rašymas yra labai greitas);

【Santrauka】

1. Įgyvendinimas yra svarbus, bet svarbiau yra idėja;

2. Daugelis pagrindinių principų ir idėjų yra universalūs
Originalus:https://blog.csdn.net/zhanghan18 ... le/details/91638443




Ankstesnis:.net/c# ado.net vykdo saugomas procedūras su grąžinamomis reikšmėmis
Kitą:MSSQL SU (NOLOCK) nešvariu skaitymu
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com