Ny tantaran'ny famafana ara-batana ny rakitsoratra 300 tapitrisa ao amin'ny MySQL

fampidirana

Salama. NingenMe aho, mpamorona tranonkala.

Araka ny voalazan'ny lohateny, ny tantarako dia ny tantaran'ny famafana ara-batana ireo rakitra 300 tapitrisa ao amin'ny MySQL.

Nanjary liana tamin’izany aho, ka nanapa-kevitra ny hanao fampahatsiahivana (toro-hevitra).

Home - Fanairana

Ny mpizara batch ampiasaiko sy tazomiko dia manana dingana tsy tapaka izay manangona ny angon-drakitra tamin'ny volana lasa avy amin'ny MySQL indray mandeha isan'andro.

Amin'ny ankapobeny dia ao anatin'ny adiny 1 eo ho eo no vita io dingana io, saingy tamin'ity indray mitoraka ity dia tsy vita nandritra ny 7 na 8 ora, ary tsy nitsahatra nipoitra ny fanairana...

Mitady antony

Niezaka namerina ny dingana aho ary nijery ireo diary, saingy tsy hitako izay diso.
Voasoritra tsara ny fanontaniana. Saingy rehefa nieritreritra ny zavatra tsy nety aho dia tsapako fa lehibe ny haben'ny database.

hoge_table | 350'000'000 |

350 tapitrisa firaketana. Toa mandeha tsara ny fanondroana, miadana be.

Manodidina ny 12 eo ho eo ny fanangonam-baovao ilaina isam-bolana. Toa naharitra ela ny baiko voafantina ary tsy vita ela ny fifampiraharahana.

DB

Amin'ny ankapobeny dia latabatra izay mitombo 400 eo ho eo isan'andro. Tokony ho tamin'ny volana lasa ihany no nanangona angon-drakitra ny angon-drakitra, noho izany, nanantena ny hahatohitra tanteraka an'io habetsaky ny angon-drakitra io izy io, saingy indrisy fa tsy tafiditra ny hetsika fihodinana.

Tsy izaho no namolavola ity angon-drakitra ity. Noraisiko tamin'ny mpamorona hafa izany, ka mbola toy ny trosa ara-teknika ihany.

Tonga ny fotoana nitomboan'ny angon-drakitra nampidirina isan'andro ary nahatratra ny fetrany. Heverina fa rehefa miasa miaraka amin'ny angon-drakitra betsaka toy izany dia ilaina ny manasaraka azy ireo, saingy indrisy fa tsy vita izany.

Ary avy eo dia nanomboka niasa aho.

Fanitsiana

Rariny kokoa ny fampihenana ny haben'ny angon-drakitra sy ny fampihenana ny fotoana fanodinana azy noho ny fanovana ny lojika.

Tokony hiova be ny toe-draharaha raha mamafa rakitra 300 tapitrisa ianao, ka nanapa-kevitra ny hanao izany aho ... Eh, nihevitra aho fa hahomby izany.

Hetsika 1

Rehefa nanomana backup azo antoka aho dia nanomboka nandefa fangatahana ihany.

「Mandefa fangatahana」

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

"…"

"…"

“Hmm... Tsy misy valiny. Sao dia maharitra ela ny dingana?” — Nieritreritra aho, fa raha sanatria, nijery ny grafana aho ary hitako fa nitombo haingana ny enta-mavesatra.
“Mampidi-doza”, hoy aho nieritreritra indray ary najanoko avy hatrany ilay fangatahana.

Hetsika 2

Rehefa avy nandinika ny zava-drehetra aho dia tsapako fa lehibe loatra ny habetsaky ny angon-drakitra mba hamafa ny zava-drehetra indray mandeha.

Nanapa-kevitra ny hanoratra script aho izay afaka hamafa rakitsoratra 1 eo ho eo ary nandefa izany.

「Mampihatra ny script aho」

“Ankehitriny dia hahomby tokoa izany,” hoy aho nieritreritra.

Hetsika 3

Nandaitra ny fomba faharoa, saingy hita fa tena nilana asa.
Ny fanaovana ny zava-drehetra amim-pitandremana, tsy misy nerveuse tsy ilaina, dia haharitra tapa-bolana eo ho eo. Na izany aza, tsy mahafeno ny fepetra takian'ny serivisy io toe-javatra io, ka voatery niala tamin'izany izahay.

Ka izao no tapa-kevitra hataoko:

Adikao ny tabilao ary ovay anarana

Avy amin'ny dingana teo aloha dia tsapako fa ny famafana angon-drakitra be dia be toy izany dia miteraka enta-mavesatra mitovy. Noho izany dia nanapa-kevitra ny hamorona latabatra vaovao avy amin'ny scratch aho amin'ny fampiasana insert ary hamindra ny data hofafako ao anatiny.

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

Raha manao ny latabatra vaovao mitovy habe amin'ny etsy ambony ianao, ny hafainganan'ny fanodinana angona dia tokony ho 1/7 haingana kokoa.

Rehefa avy namorona ny latabatra sy nanome anarana azy aho dia nanomboka nampiasa azy io ho latabatra master. Ankehitriny raha latsaka ny latabatra misy rakitra 300 tapitrisa dia tokony ho tsara daholo ny zava-drehetra.
Hitako fa ny truncate na ny drop dia miteraka ambany kokoa noho ny mamafa ary nanapa-kevitra ny hampiasa an'io fomba io aho.

famonoana

「Mandefa fangatahana」

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

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

Hetsika 4

Nihevitra aho fa mety ny hevitra teo aloha, saingy taorian'ny nandefasana ny fangatahana fampidirana dia nisy hadisoana maro niseho. MySQL dia tsy mamela heloka.

Efa reraka be aho ka nanomboka nieritreritra fa tsy te hanao izany intsony aho.

Nipetraka aho ary nieritreritra ary tonga saina fa mety ho be loatra ny fanontaniana fampidirana indray mandeha...
Nanandrana nandefa fangatahana fampidirana aho momba ny habetsaky ny angona tokony hokarakarain'ny angona ao anatin'ny 1 andro. Nitranga!

Eny ary, aorian'izay dia manohy mandefa fangatahana mitovy amin'ny angon-drakitra izahay. Koa satria mila manaisotra ny angon-drakitra mandritra ny iray volana isika, dia averinay in-35 eo ho eo io fandidiana io.

Fanovana anarana latabatra

Indro nisy vintana teo anilako: nilamina ny zava-drehetra.

Tsy hita ny fanairana

Nitombo ny hafainganam-pandehan'ny fanodinana batch.

Naharitra adiny iray teo aloha ity dingana ity, 2 minitra eo ho eo izao.

Rehefa azoko antoka fa voavaha ny olana rehetra dia nandatsaka rakitra 300 tapitrisa aho. Nofafako ny latabatra ary nahatsapa ho teraka indray aho.

FAMINTINANA

Tsapako fa tsy ampy ny fanodinana fihodinana, ary izany no olana lehibe indrindra. Ity karazana fahadisoana ara-javakanto ity dia mitarika ho amin'ny fandaniam-potoana.

Mieritreritra ve ianao momba ny enta-mavesatra mandritra ny famerenana ny angona rehefa mamafa ny rakitra ao amin'ny angon-drakitra? Aoka tsy ho be loatra ny MySQL.

Ireo izay mahay momba ny angon-drakitra dia azo antoka fa tsy hiatrika olana toy izany. Ho an'ny sisa aminareo, manantena aho fa nahasoa ity lahatsoratra ity.

Misaotra namaky!

Tena faly izahay raha milaza aminay ianao na tianao ity lahatsoratra ity, na mazava ny fandikan-teny, na nahasoa anao ve izany?

Source: www.habr.com

Add a comment