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