Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 16305|Vastaus: 0

[Lähde] Tietokanta-master-slave-viive johtaa epätarkkaan kyselyn ratkaisuun

[Kopioi linkki]
Julkaistu 2020-4-2 klo 20:41:03 | | | |
【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




Edellinen:.net/c# ado.net suorittaa tallennetut proseduurit palautusarvoilla
Seuraava:MSSQL WITH (NOLOCK) likainen lukeminen
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com