Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 16305|Atbildi: 0

[Avots] Datu bāzes galvenā verga latentums noved pie neprecīzas vaicājumu izšķirtspējas

[Kopēt saiti]
Publicēts 2020-4-2 20:41:03 | | | |
【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




Iepriekšējo:.net/c# ado.net izpilda saglabātās procedūras ar atgrieztajām vērtībām
Nākamo:MSSQL AR (NOLOCK) netīru lasīšanu
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com