【Priekšvārds】
Kad dati sasniedz noteiktu apjomu, datu bāze kļūs par visas sistēmas vājo kaklu, un optimizācijas stratēģija parasti tiek pieņemta kā lasīšanas un rakstīšanas atdalīšana, un datu bāze realizē lasīšanas un rakstīšanas atdalīšanu, dalot galveno datu bāzi no datu bāzes (rakstīšanas pieprasījuma operācija no galvenās datu bāzes, lasīšanas pieprasījuma operācija no datu bāzes);
【Idejas datu kavējumu risināšanai】
1. Master-slave sinhronizācijas princips (šeit mēs ņemam populārāko MySQL kā piemēru)
Šeit ir shematiska diagramma par klasisko MySQL master-slave datu sinhronizāciju, izmantojot binlog:
2. Kā rodas problēmas?
1. No iepriekš minētās shēmas nav grūti konstatēt, ka galvenā un verga sinhronizācijai ir noteikta kavēšanās, kas ietekmē aizkavēšanās lielumu:
(1) Kavējuma lielums ir atkarīgs no datu apjoma, kas ģenerēts no pēdējās sinhronizācijas līdz pašreizējai
(2) Pašreizējā tīkla situācija starp serveriem
(3) Paša galvenā-verga servera spiediens (CPU, atmiņa, IO utt.)
2. Tā kā datu bāzes pakalpojums parasti atrodas iekštīklā, un serveris būs augstāks konfigurācijā (vairāk nekā faktiskā vajadzība), kad tas tiek iegādāts, sinhronizācija būtībā ir ļoti ātra, parasti milisekundēs;
3. Vispārējos biznesa scenārijos milisekunžu latentumu var ignorēt;
4. Ir vispārīgi un īpaši gadījumi, un dažās īpašās situācijās ir nepieciešama reālā laika milisekunžu laika starpība. Šeit ir izplatīti risinājumi šīm īpašajām situācijām.
3. Datu latentuma risinājumi:
1. 1. shēma: uzrakstiet programmu dubultā (uzrakstiet galveno datu bāzi un vienlaikus lasiet datu bāzi)
2. 2. shēma: izlasiet programmu, lai pārbaudītu galveno datu bāzi
3. 3. shēma: uzrakstiet galveno datu bāzi un ierakstiet kešatmiņu (iestatiet noteiktu derīguma termiņu, parasti nedaudz lielāks par datu bāzes sinhronizācijas maksimālo kavēšanos), izlasiet programmu, izlasiet kešatmiņu un izlasiet vergu datu bāzi
4. Trīs shēmu priekšrocības un trūkumi:
1. 1. shēma: Dubultā rakstīšana patērēs noteiktu veiktspēju, kas ir salīdzinoši vienkārši īstenojama un nav piemērota augstiem vienlaicīgas rakstīšanas scenārijiem;
2. 2. shēma: lasīšanas programma ietekmēs galvenās bibliotēkas veiktspēju, kas ir salīdzinoši vienkārši īstenojama un nav piemērota augstas vienlaicīgas lasīšanas scenārijiem.
3. 3. shēma: Vairumā gadījumu lasīšana un rakstīšana patērē lielāku rakstīšanas veiktspēju, kas ir sarežģītāk īstenojama un ir piemērota gan augstai vienlaicīgai lasīšanai, gan rakstīšanai (kešatmiņas lasīšana un rakstīšana ir ļoti ātra);
【Kopsavilkums】
1. Īstenošana ir svarīga, bet svarīgāka ir ideja;
2. Daudzi pamatprincipi un idejas ir universāli Sākotnējā:https://blog.csdn.net/zhanghan18 ... le/details/91638443
|