Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 16305|Svar: 0

[Kilde] Database master-slave latens fører til unøjagtig forespørgselsløsning

[Kopier link]
Opslået den 2. april 2020 kl. 20:41:03 | | | |
【Forord】

Når dataene når et vist niveau, bliver databasen flaskehalsen i hele systemet, og optimeringsstrategien anvendes generelt som læse- og skriveadskillelse, og databasen realiserer læse- og skriveadskillelse ved at opdele hoveddatabasen fra databasen (skriveanmodningsoperation fra hoveddatabasen, læseanmodningsoperation fra databasen);

【Idéer til at løse dataforsinkelser】

1. Princippet om master-slave synkronisering (her tager vi det mest populære MySQL som eksempel)

Her er et skematisk diagram over en klassisk MySQL master-slave datasynkronisering via binlog:



2. Hvordan opstår problemer?

1. Ud fra ovenstående skema er det ikke svært at finde, at master-slave-synkronisering har en bestemt forsinkelse, som påvirker forsinkelsesstørrelsen:

(1) Forsinkelsens størrelse afhænger af mængden af data, der genereres fra den seneste synkronisering til nutiden

(2) Den nuværende netværkssituation mellem servere

(3) Presset fra selve master-slave-serveren (CPU, hukommelse, IO osv.)

2. Da databasetjenesten generelt er placeret i intranettet, og serveren vil være højere i konfigurationen (mere end det faktiske behov) ved køb, er synkroniseringen grundlæggende meget hurtig, typisk på millisekunder;

3. I generelle forretningsscenarier kan millisekundslatens ignoreres;



4. Der findes generelle og specielle tilfælde, og nogle særlige situationer kræver tidsforskel i millisekund i realtid. Her er almindelige løsninger til disse særlige situationer.

3. Datalatensløsninger:

1. Skema 1: Skriv program-dobbelt (skriv hoveddatabasen og læs databasen samtidig)



2. Skema 2: Læs programmet for at tjekke hoveddatabasen



3. Skema 3: Skriv hoveddatabasen og skriv cachen (sæt en bestemt udløbstid, som generelt er lidt længere end den maksimale forsinkelse for databasesynkronisering), læs programmet, læs cachen og læs slave-databasen



4. Fordele og ulemper ved de tre ordninger:

1. Skema 1: Dobbeltskrivning vil forbruge en vis mængde ydeevne, hvilket er relativt enkelt at implementere og ikke egnet til scenarier med høj samtidig skrivning;

2. Skema 2: Læseprogrammet vil påvirke ydeevnen af hovedbiblioteket, som er relativt enkelt at implementere og ikke egnet til scenarier med høj samtidig læsning.

3. Skema 3: I de fleste tilfælde kræver læsning og skrivning mere skriveydelse, hvilket er mere komplekst at implementere og egnet til både høje samtidige læsninger og skrivninger (cache-læsninger og skrivninger er meget hurtige);

【Resumé】

1. Implementering er vigtig, men vigtigere er idéen;

2. Mange underliggende principper og idéer er universelle
Oprindelig:https://blog.csdn.net/zhanghan18 ... le/details/91638443




Tidligere:.net/c# ado.net udfører lagrede procedurer med returværdier
Næste:MSSQL MED (NOLOCK) beskidt læsning
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com