【Eessõna】
Kui andmed jõuavad teatud piirini, muutub andmebaas kogu süsteemi kitsaskohaks ning optimeerimisstrateegiat kasutatakse üldiselt lugemise ja kirjutamise eraldamisena, ning andmebaas teostab lugemis- ja kirjutamiseraldus, jagades põhiandmebaasi andmebaasist (kirjutamistaotluse operatsioon põhiandmebaasist, lugemistaotluse operatsioon andmebaasist);
【Ideid andmeviivituste lahendamiseks】
1. Master-slave sünkroniseerimise põhimõte (siin võtame näiteks kõige populaarsema MySQL-i)
Siin on klassikalise MySQL master-slave andmete sünkroniseerimise skeem binlogi kaudu:
2. Kuidas probleemid tekivad?
1. Ülaltoodud skeemi põhjal pole raske leida, et master-slave sünkroniseerimisel on teatud viivitus, mis mõjutab viivituse suurust:
(1) Viivituse suurus sõltub andmete hulgast, mis on genereeritud viimasest sünkroniseerimisest praeguseni
(2) Praegune võrguolukord serverite vahel
(3) Master-slave serveri enda surve (CPU, mälu, IO jne)
2. Kuna andmebaasiteenus asub tavaliselt intranetis ja server on ostetud konfiguratsioonis kõrgemal (rohkem kui tegelik vajadus), on sünkroniseerimine põhimõtteliselt väga kiire, tavaliselt millisekundites;
3. Üldistes äriolukordades võib millisekundilist latentsust eirata;
4. On üldisi ja erijuhtumeid ning mõned eriolukorrad nõuavad reaalajas millisekundilist ajavahet. Siin on levinumad lahendused nendele eriolukordadele.
3. Andmete latentsuse lahendused:
1. Skeem 1: Kirjuta programm kahekordselt (kirjuta põhiandmebaas ja loe andmebaasi samaaegselt)
2. Skeem 2: Loe programmi, et kontrollida peamist andmebaasi
3. Skeem 3: Kirjuta põhiandmebaas ja kirjuta vahemälu (sea kindel aegumisaeg, mis tavaliselt veidi suurem kui andmebaasi sünkroniseerimise maksimaalne viivitus), loe programmi, loe vahemälu ja loe orja-andmebaasi
4. Kolme skeemi eelised ja puudused:
1. Skeem 1: Topeltkirjutamine nõuab teatud jõudlust, mis on suhteliselt lihtne teostada ja ei sobi kõrge samaaegse kirjutamise stsenaariumiteks;
2. Skeem 2: Lugemisprogramm mõjutab peamise raamatukogu jõudlust, mis on suhteliselt lihtne rakendada ja ei sobi kõrge samaaegse lugemise stsenaariumiteks.
3. Skeem 3: Enamasti nõuab lugemine ja kirjutamine rohkem kirjutamisjõudlust, mis on keerulisem teostada ning sobib nii kõrgeteks samaaegseteks lugemisteks kui ka kirjutamiseks (vahemälu lugemised ja kirjutamised on väga kiired);
【Kokkuvõte】
1. Rakendamine on oluline, kuid olulisem on idee;
2. Paljud aluspõhimõtted ja ideed on universaalsed Originaal:https://blog.csdn.net/zhanghan18 ... le/details/91638443
|