【Esipuhe】
Kun data saavuttaa tietyn määrän, tietokanta muuttuu koko järjestelmän pullonkaulaksi, ja optimointistrategia käytetään yleensä luku- ja kirjoituserotteluna, ja tietokanta toteuttaa luku- ja kirjoituserottelun jakamalla päätietokannan tietokannasta (kirjoituspyyntöoperaatio päätietokannasta, lukupyyntöoperaatio tietokannasta);
【Ideoita dataviiveiden ratkaisemiseksi】
1. Master-slave-synkronoinnin periaate (tässä otetaan suosituin MySQL esimerkkinä)
Tässä on kaaviokaavio klassisesta MySQL-master-slave-datasynkronoinnista binlogin avulla:
2. Miten ongelmat syntyvät?
1. Yllä olevasta kaaviosta ei ole vaikea havaita, että master-slave-synkronoinnilla on tietty viive, joka vaikuttaa viiveen kokoon:
(1) Viiveen koko riippuu siitä, kuinka paljon dataa on tuotettu viimeisestä synkronoinnista nykyhetkeen
(2) Nykyinen verkkotilanne palvelimien välillä
(3) Master-slave-palvelimen paine (CPU, muisti, IO jne.)
2. Koska tietokantapalvelu on yleensä intranetissä ja palvelin on korkeammalla konfiguraatiossa (enemmän kuin todellinen tarve) ostossa, synkronointi on käytännössä hyvin nopeaa, yleensä millisekunneissa;
3. Yleisissä liiketoimintatilanteissa millisekunnin viive voidaan jättää huomiotta;
4. On yleisiä ja erityistapauksia, ja joissain erityistilanteissa vaaditaan reaaliaikainen millisekunnin aikaero. Tässä ovat yleisiä ratkaisuja näihin erityistilanteisiin.
3. Datan viiveratkaisut:
1. Menetelmä 1: Kirjoita ohjelma kahteen kertaan (kirjoita päätietokanta ja lue tietokanta samanaikaisesti)
2. Kaavio 2: Lue ohjelma tarkistaaksesi päätietokannan
3. Menetelmä 3: Kirjoita päätietokanta ja kirjoita välimuisti (aseta tietty vanhenemisaika, yleensä hieman yli tietokannan synkronoinnin maksimiviive), lue ohjelma, lue välimuisti ja lue slave-tietokanta
4. Kolmen järjestelmän edut ja haitat:
1. Kaavio 1: Kaksoiskirjoitus vaatii tietyn määrän suorituskykyä, mikä on suhteellisen helppoa toteuttaa eikä sovellu korkean samanaikaisen kirjoituksen tilanteisiin;
2. Kaavio 2: Lukuohjelma vaikuttaa pääkirjaston suorituskykyyn, joka on suhteellisen yksinkertainen toteuttaa eikä sovellu korkean samanaikaisen lukumäärän tilanteisiin.
3. Kaavio 3: Useimmissa tapauksissa luku- ja kirjoitusjärjestelmä vaatii enemmän kirjoitustehoa, mikä on monimutkaisempaa toteuttaa ja sopii sekä korkeaan samanaikaiseen lukuun että kirjoitukseen (välimuistin lukeminen ja kirjoitus ovat hyvin nopeita);
【Yhteenveto】
1. Toteutus on tärkeää, mutta tärkeämpää on ajatus;
2. Monet taustalla olevat periaatteet ja ideat ovat universaaleja Alkuperäinen:https://blog.csdn.net/zhanghan18 ... le/details/91638443
|