Sheekada Tirtiridda Jireed ee 300 oo milyan oo diiwaanka MySQL ah

Horudhac

Hello. Waxaan ahay ningenMe, horumariyaha shabakadda.

Sida ciwaanka u leeyahay, sheekadeyda waa sheekada jir ahaan tirtirida 300 milyan diiwaanka MySQL.

Tan ayaan xiisaynayay, markaas waxaan go'aansaday inaan xasuusiyo (tilmaamo).

Guriga - Digniin

Seferka dufcaddii aan isticmaalo oo aan ilaaliyo waxa uu leeyahay nidaam joogto ah kaas oo ka soo ururiya xogta bishii u dambaysay MySQL hal mar maalintii.

Sida caadiga ah hawshan waxa ay ku dhammaataa qiyaastii 1 saac gudahood, laakiin markan ma dhamayn 7 ama 8 saacadood, digniintuna ma joojin in ay soo baxdo...

Raadinta sabab

Waxaan isku dayay inaan dib u bilaabo nidaamka oo aan eego diiwaannada, laakiin ma aanan arkin wax qalad ah.
Weydiinta si sax ah ayaa loo tusmeeyay Laakiin markii aan ka fekeray waxa khaldan, waxaan gartay in cabbirka kaydku uu aad u weyn yahay.

hoge_table | 350'000'000 |

350 milyan oo diiwaan. Tilmaan-bixintu waxay u muuqatay inay si sax ah u shaqaynaysay, aad u gaabis ah.

Xog ururinta loo baahan yahay bishii waxay ahayd ku dhawaad ​​12 oo diiwaan. Waxay u egtahay in amarka xulashada uu qaatay waqti dheer oo macaamilka lama fulin muddo dheer.

DB

Asal ahaan waa miis koraya ilaa 400 oo wax la geli karo maalin kasta. Xog-ururintu waxa ay ahayd in ay ururiso xogta kaliya bishii u dambaysay, sidaa awgeed, waxa la filayey in ay u adkeysan doonto tiradan xogta dhabta ah, laakiin, nasiib daro, hawlgalka wareegtada laguma darin.

Xog-ururintan ma aha kuwo aan sameeyay. Waxaan kala wareegay horumariye kale, sidaas darteed wali waxay dareemaysay deyn farsamo.

Waxaa yimid dhibic markii mugga xogta la geliyo maalin kasta ay noqotay mid weyn oo ugu dambeyntii gaartay xadkeedii. Waxaa loo maleynayaa in marka la shaqeynayo tiro badan oo xog ah, ay lagama maarmaan tahay in la kala saaro, laakiin tani, nasiib daro, lama samayn.

Kadibna waxaan imid ficil.

Sixitaan

Waxay ahayd mid caqli gal ah in la dhimo cabbirka xogta lafteeda oo la dhimo wakhtiga lagu shaqeynayo halkii la beddeli lahaa macquulka lafteeda.

Xaaladdu waa inay si weyn u beddeshaa haddii aad tirtirto 300 milyan oo rikoodh, markaa waxaan go'aansaday inaan sidaas sameeyo ... Haa, waxaan u maleynayay in tani ay hubaal tahay inay shaqeyn doonto.

Ficilka 1

Markii aan diyaariyey gurmad lagu kalsoonaan karo, waxaan ugu dambeyntii bilaabay inaan diro codsiyo.

"Diritaan codsi"

DELETE FROM hoge_table WHERE create_time <= 'YYYY-MM-DD HH:MM:SS';

"..."

"..."

β€œHmm... jawaab maya. Waxaa laga yaabaa in geeddi-socodku uu qaato waqti dheer? - Waxaan mooday, laakiin haddii ay dhacdo, waxaan eegay grafana oo waxaan arkay in culeyska saxanka uu si dhakhso ah u korayo.
"Khatarta," mar kale ayaan fekeray oo isla markiiba joojiyay codsigii.

Ficilka 2

Ka dib markii aan falanqeeyay wax walba, waxaan ogaaday in mugga xogtu uu aad u weyn yahay in la tirtiro wax kasta hal mar.

Waxaan go'aansaday in aan qoro qoraal tirtiri kara ilaa 1 diiwaan oo bilaabay.

"Waan hirgeliyaa qoraalka"

"Hadda tani hubaal way shaqayn doontaa," waxaan u maleeyay.

Ficilka 3

Habka labaad ayaa shaqeeyay, laakiin wuxuu noqday mid aad u xoog badan.
Si aad wax walba u sameyso si taxadar leh, iyada oo aan lahayn neerfaha aan loo baahnayn, waxay qaadan doontaa ilaa laba toddobaad. Laakin weli, dhacdadani ma aysan buuxin shuruudaha adeegga, markaa waa inaan ka guurno.

Markaa waa tan waxa aan go'aansaday in aan sameeyo:

Miiska ka guuri oo dib u magacow

Laga soo bilaabo tillaabadii hore, waxaan xaqiiqsaday in tirtirida tirada badan ee xogta ay abuurto culeys weyn oo siman. Markaa waxaan go'aansaday inaan ka abuuro miis cusub oo xoq ah anigoo isticmaalaya gelinta oo aan u dhaqaajiyo xogta aan tirtirayo.

| hoge_table     | 350'000'000|
| tmp_hoge_table |  50'000'000|

Haddii aad miiska cusub ka dhigto mid la mid ah kan sare, xawaaraha habaynta xogta sidoo kale waa inuu noqdaa 1/7 dhakhso ah.

Ka dib markii la abuuray miiska iyo magaca, waxaan bilaabay isticmaalka sida miiska sayidkiisa. Hadda haddii aan miiska hoos u dhigo 300 milyan oo rikoodh wax walba waa inay fiicnaadaan.
Waxaan ogaaday in googooyn ama hoos u dhigidu ay abuurto wax ka yar in la tirtiro oo waxaan go'aansaday inaan isticmaalo habkan.

Waxqabadka

"Diritaan codsi"

INSERT INTO tmp_hoge_table SELECT FROM hoge_table create_time > 'YYYY-MM-DD HH:MM:SS';

"..."
"..."
"Em...?"

Ficilka 4

Waxaan u maleynayay in fikradii hore ay shaqeyn doonto, laakiin ka dib markii la soo diro codsiga gelinta, khaladaad badan ayaa soo muuqday. MySQL ma cafinayso.

Durba aad baan u daalay oo waxaan bilaabay inaan ku fikiro inaanan rabin inaan tan sameeyo.

Waan fadhiistay oo aan ka fikiray oo ogaaday in laga yaabo inay jiraan weydiimo badan oo gelin hal mar ah...
Waxaan isku dayay inaan diro codsi gelin ah oo ku saabsan qadarka xogta ay tahay in kaydku ku shaqeeyo 1 maalin gudaheed. dhacay!

Hagaag, intaas ka dib waxaan sii wadeynaa inaan u dirno codsiyo xog isku mid ah. Maadaama aan u baahanahay in aan meesha ka saarno xogta qiimaha leh ee bisha, waxaan ku celinaa hawlgalkan ku dhawaad ​​35 jeer.

Magacaabida miiska

Halkan nasiibku wuxuu ahaa dhinacayga: wax walba waxay u socdeen si habsami leh.

Digniin waa la waayay

Xawaaraha habaynta dufcaddii ayaa kordhay.

Markii hore hawshani waxay qaadatay ilaa saacad, hadda waxay qaadanaysaa ilaa 2 daqiiqo.

Ka dib markii aan hubsaday in dhammaan dhibaatooyinka la xaliyay, waxaan tuuray 300 milyan oo rikoodh. Miiskii ayaan tirtiray oo waxaan dareemay dib u dhalan.

Soo koobid

Waxaan xaqiiqsaday in habaynta wareega ay ka maqan tahay habaynta Dufcaddii, taasina waa dhibka ugu wayn. Qaladka qaab dhismeedka noocan ah wuxuu keenaa waqti lumis.

Ma ka fikirtaa culayska inta lagu jiro ku celcelinta xogta marka aad tirtirayso diiwaanada kaydka? Yaynaan culays saarin MySQL.

Kuwa si fiican u yaqaan xogta macluumaadka xaqiiqdii ma la kulmi doonaan dhibaatadan oo kale. Inta kale, waxaan rajeynayaa in maqaalkani uu waxtar lahaa.

Waad ku mahadsan tahay akhrinta!

Aad baannu kuugu farxi doonaa haddii aad noo sheegto inaad ka heshay maqaalkan, inay tarjumaaddu caddahay, inay waxtar kuu leedahay?

Source: www.habr.com

Add a comment