Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Nthawi ina m'tsogolomu, kuchotsa deta yosafunikira kudzakhala imodzi mwa ntchito zofunika kwambiri za DBMS [1]. Pakalipano, ife tokha tifunika kusamalira kuchotsa kapena kusuntha deta yosafunikira kumakina osungira otsika mtengo. Tiyerekeze kuti mwasankha kuchotsa mizere mamiliyoni angapo. Ntchito yophweka, makamaka ngati chikhalidwecho chikudziwika ndipo pali ndondomeko yoyenera. "CHOTANI KUCHOKERA table1 KODI col1 = :value" - ndi chiyani chomwe chingakhale chophweka, chabwino?

Video:

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

  • Ndakhala mu komiti ya pulogalamu ya Highload kuyambira chaka choyamba, mwachitsanzo kuyambira 2007.

  • Ndipo ndakhala ndi Postgres kuyambira 2005. Amagwiritsidwa ntchito m'ma projekiti ambiri.

  • Gulu ndi RuPostges kuyambira 2007.

  • Takula kufika pa 2100+ otenga nawo mbali pa Meetup. Ndi yachiwiri padziko lonse lapansi pambuyo pa New York, yomwe idalandidwa ndi San Francisco kwa nthawi yayitali.

  • Ndakhala ku California kwa zaka zingapo. Ndimachita zambiri ndi makampani aku America, kuphatikiza akuluakulu. Ndiwogwiritsa ntchito kwambiri Postgres. Ndipo pali mitundu yonse ya zinthu zosangalatsa.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

https://postgres.ai/ ndi kampani yanga. Tili mu bizinesi ya automating ntchito zomwe zimachotsa kutsika kwachitukuko.

Ngati mukuchita zinazake, ndiye kuti nthawi zina pamakhala mapulagi amtundu wa Postgres. Tiyerekeze kuti muyenera kudikirira kuti admin akukhazikitseni mayeso, kapena muyenera kudikirira kuti DBA ikuyankheni. Ndipo timapeza zolepheretsa zotere mu chitukuko, kuyesa ndi kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe kake.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

https://www.seagate.com/files/www-content/our-story/trends/files/idc-seagate-dataage-whitepaper.pdf

Posachedwapa ndinali ku VLDB ku Los Angeles. Uwu ndiye msonkhano waukulu kwambiri pazankho. Ndipo panali lipoti loti m'tsogolomu DBMS sichidzangosunga, komanso kuchotsa deta yokha. Uwu ndi mutu watsopano.

Pali zambiri zambiri padziko lonse lapansi za zettabytes - ndizo 1 petabytes. Ndipo tsopano zikuyerekezedwa kale kuti tili ndi data yoposa 000 zettabytes yosungidwa padziko lapansi. Ndipo ndi ochulukirachulukira.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

https://vldb2019.github.io/files/VLDB19-keynote-2-slides.pdf

Ndipo chochita nacho chiyani? Mwachiwonekere iyenera kuchotsedwa. Nawu ulalo wa lipoti losangalatsali. Koma mpaka pano izi sizinakwaniritsidwe mu DBMS.

Amene angathe kuwerenga ndalama amafuna zinthu ziwiri. Amafuna kuti tifufute, kotero mwaukadaulo tiyenera kutero.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Zomwe ndifotokoze motsatira ndizochitika zina zomwe zikuphatikiza zochitika zenizeni, mwachitsanzo, kuphatikiza zomwe zidandichitikira komanso nkhokwe zozungulira nthawi zambiri, zaka zambiri. Ma Rakes ali paliponse ndipo aliyense amawaponda nthawi zonse.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Tinene kuti tili ndi maziko kapena maziko angapo omwe akukula. Ndipo zolemba zina mwachiwonekere ndi zinyalala. Mwachitsanzo, wogwiritsa ntchitoyo anayamba kuchita chinachake pamenepo, koma sanamalize. Ndipo patapita nthawi tikudziwa kuti chosamalizidwa sichingasungidwenso. Ndiye kuti, tikufuna kuyeretsa zinthu zina zonyansa kuti tisunge malo, kukonza magwiridwe antchito, ndi zina.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Nthawi zambiri, ntchitoyo ndikusintha kufufutidwa kwa zinthu zenizeni, mizere yeniyeni mu tebulo lina.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Ndipo tili ndi pempho loterolo, lomwe tidzakambirana lero, ndiko kuti, za kuchotsa zinyalala.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Tinapempha katswiri wodziwa ntchito kuti achite. Adatenga pempholi, adadzifufuza yekha - zonse zimagwira ntchito. Kuyesedwa pa siteji - zonse zili bwino. Kukonzekera - zonse zimagwira ntchito. Kamodzi patsiku timayendetsa - zonse zili bwino.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Ma database amakula ndikukula. Daily DELETE imayamba kugwira ntchito pang'onopang'ono.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Kenako timamvetsetsa kuti tsopano tili ndi kampani yotsatsa ndipo kuchuluka kwa magalimoto kudzakhala kokulirapo kangapo, chifukwa chake timasankha kuyimitsa kwakanthawi zinthu zosafunikira. Ndipo iwalani kubwerera.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Patapita miyezi ingapo iwo anakumbukira. Ndipo wopanga mapulogalamuyo adasiya kapena ali wotanganidwa ndi chinthu china, adalangiza wina kuti abweze.

Anayang'ana pa dev, pa siteji - zonse zili bwino. Mwachibadwa, mukufunikirabe kuyeretsa zomwe zaunjikana. Anafufuza zonse zikugwira ntchito.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Kodi chinachitika n'chiyani? Ndiye zonse zimagwera padera chifukwa cha ife. Imagwa kotero kuti nthawi ina chirichonse chigwe pansi. Aliyense ali ndi mantha, palibe amene akumvetsa zomwe zikuchitika. Kenako zidapezeka kuti nkhaniyi inali mu DELETE iyi.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Chinachake chalakwika? Nawu mndandanda wazomwe zikanalakwika. Ndi iti mwa izi yomwe ili yofunika kwambiri?

  • Mwachitsanzo, panalibe ndemanga, mwachitsanzo, katswiri wa DBA sanayang'ane. Nthawi yomweyo amapeza vuto ndi diso lodziwa bwino, ndipo kuwonjezera apo, ali ndi mwayi wolowera, komwe mizere mamiliyoni angapo yaunjikana.

  • Mwinamwake iwo ayang'ana chinachake cholakwika.

  • Mwinamwake hardware ndi yachikale ndipo muyenera kukweza maziko awa.

  • Kapena china chake sichili bwino ndi database yokha, ndipo tifunika kuchoka ku Postgres kupita ku MySQL.

  • Kapena mwina pali cholakwika ndi opareshoni.

  • Mwinamwake pali zolakwika zina mu bungwe la ntchito ndipo muyenera kuthamangitsa munthu ndikulemba anthu abwino kwambiri?

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Panalibe cheke cha DBA. Ngati pakanakhala DBA, amawona mizere mamiliyoni angapo ndipo ngakhale popanda kuyesa kulikonse anganene kuti: "Sachita zimenezo." Tiyerekeze kuti code iyi ikadakhala ku GitLab, GitHub ndipo pakadakhala ndondomeko yowunikiranso kachidindo ndipo panalibe chinthu choterocho kuti popanda kuvomerezedwa ndi DBA ntchitoyi idzachitika pa prod, ndiye mwachiwonekere DBA ikadati: "Izi sizingachitike. .”

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Ndipo anganene kuti mudzakhala ndi vuto ndi disk IO ndipo njira zonse zidzapenga, pakhoza kukhala maloko, komanso mudzatsekereza autovacuum kwa mphindi zingapo, kotero izi sizabwino.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

http://bit.ly/nancy-hl2018-2

Cholakwika chachiwiri - adayang'ana pamalo olakwika. Tidawona pambuyo poti zambiri zopanda pake zidasonkhanitsidwa pa prod, koma wopangayo analibe deta mu database iyi, ndipo palibe amene adapanga zonyansa izi panthawi yoyeserera. Chifukwa chake, panali mizere 1 yomwe idachitika mwachangu.

Timamvetsetsa kuti mayesero athu ndi ofooka, mwachitsanzo, njira yomwe imamangidwa siigwira mavuto. Kuyesera kokwanira kwa DB sikunachitike.

Kuyesera koyenera kumachitika makamaka pazida zomwezo. Sizingatheke nthawi zonse kuchita izi pazida zomwezo, koma ndizofunikira kwambiri kuti zikhale zolemba zonse za database. Izi ndi zimene ndakhala ndikulalikira kwa zaka zingapo tsopano. Ndipo chaka chapitacho ndinalankhula za izi, mutha kuziwonera zonse pa YouTube.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Mwina zida zathu ndi zoyipa? Ngati muyang'ana, ndiye kuti latency idalumpha. Tawona kuti kugwiritsa ntchito ndi 100%. Zachidziwikire, ngati awa anali ma drive amakono a NVMe, ndiye kuti zikanakhala zophweka kwa ife. Ndipo mwinamwake ife sitikanati tigonepo kwa izo.

Ngati muli ndi mitambo, ndiye kuti kukweza kumachitika mosavuta kumeneko. Yakweza zofananira zatsopano pa hardware yatsopano. kusintha. Ndipo zonse zili bwino. Zosavuta kwambiri.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Kodi ndizotheka kukhudza ma disks ang'onoang'ono mwanjira ina? Ndipo apa, mothandizidwa ndi DBA, timadumphira pamutu wina wotchedwa checkpoint tuning. Zinapezeka kuti tinalibe kukonza cheke.

Kodi checkpoint ndi chiyani? Ili mu DBMS iliyonse. Mukakhala ndi chidziwitso chomwe chimasintha, sichimalembedwa nthawi yomweyo ku disk. Zomwe zasintha zomwe zasintha zimalembedwa koyamba ku chipika cholembera. Ndipo panthawi ina, DBMS imasankha kuti ndi nthawi yotaya masamba enieni ku disk, kotero kuti ngati talephera, tikhoza kuchita zochepa REDO. Zili ngati chidole. Ngati tiphedwa, tidzayambitsa masewerawa kuchokera kumalo otsiriza. Ndipo DBMS yonse ikukhazikitsa.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Zokonda mu Postgres zikutsalira kumbuyo. Zapangidwa kuti zikhale zaka 10-15 zaka zambiri za data ndi zochitika. Ndipo poyang'ananso ndi chimodzimodzi.

Nazi zambiri kuchokera ku lipoti lathu loyang'ana za Postgres, mwachitsanzo, kufufuza thanzi. Ndipo apa pali database ya ma terabytes angapo. Ndipo zitha kuwoneka bwino kuti kukakamiza koyang'anira pafupifupi 90% yamilandu.

Zikutanthauza chiyani? Pali makonda awiri pamenepo. Checkpoint ikhoza kubwera pomaliza, mwachitsanzo, mphindi 10. Kapena zikhoza kubwera pamene deta zambiri zadzazidwa.

Ndipo mwachisawawa max_wal_saze imayikidwa ku 1 gigabyte. M'malo mwake, izi zimachitikadi ku Postgres pambuyo pa 300-400 megabytes. Mwasintha zambiri ndipo cheke chanu chikuchitika.

Ndipo ngati palibe amene adayikonza, ndipo ntchitoyo idakula, ndipo kampaniyo imapeza ndalama zambiri, imakhala ndi zochitika zambiri, ndiye kuti kufufuza kumabwera kamodzi pa mphindi, nthawi zina masekondi 30, ndipo nthawi zina ngakhale kuphatikizika. Izi ndi zoipa ndithu.

Ndipo tiyenera kuonetsetsa kuti zimabwera kawirikawiri. Ndiye kuti, titha kukweza max_wal_size. Ndipo zidzabwera mochepa.

Koma tapanga njira yonse ya momwe tingachitire molondola, ndiko kuti, momwe tingapangire chisankho posankha zokonda, momveka bwino pogwiritsa ntchito deta yeniyeni.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Chifukwa chake, tikuchita zoyeserera ziwiri pa database.

Mndandanda woyamba - timasintha max_wal_size. Ndipo tikuchita opareshoni yayikulu. Choyamba, timachita pakusintha kosasintha kwa 1 gigabyte. Ndipo timachita DELETE yaikulu ya mizere yambirimbiri.

Mutha kuwona momwe zimavutira kwa ife. Tikuwona kuti disk IO ndi yoyipa kwambiri. Timayang'ana ma WAL angati omwe tapanga, chifukwa izi ndizofunikira kwambiri. Tiye tione kangati malo ochezerawo anachitika. Ndipo tikuwona kuti si zabwino.

Kenako timawonjezera max_wal_size. Timabwereza. Timachulukitsa, timabwereza. Ndipo nthawi zambiri. Kwenikweni, mfundo 10 ndi zabwino, pamene 1, 2, 4, 8 gigabytes. Ndipo timayang'ana khalidwe la dongosolo linalake. Zikuwonekeratu kuti apa zida ziyenera kukhala ngati pa prod. Muyenera kukhala ndi ma disks omwewo, kukumbukira kofanana, ndi zoikamo zomwezo za Postgres.

Ndipo mwanjira iyi tidzasinthanitsa dongosolo lathu, ndipo tikudziwa momwe DBMS idzachitira ngati misa yoyipa FUTA, momwe idzayang'anire.

Checkpoint mu Russian ndi pofufuza.

Chitsanzo: FUTA mizere mamiliyoni angapo ndi index, mizere ndi "mwala" masamba.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Nachi chitsanzo. Izi ndi maziko ena. Ndipo ndi kusakhazikika kwa 1 gigabyte kwa max_wal_size, zikuwonekeratu kuti ma disks athu amapita ku alumali kuti ajambule. Chithunzichi ndi chizindikiro cha wodwala wodwala kwambiri, ndiko kuti, adamva chisoni kwambiri. Ndipo panali opareshoni imodzi yokha, panali FUTA chabe mizere mamiliyoni angapo.

Ngati ntchito yotereyi ikuloledwa mu prod, ndiye kuti tidzangogona, chifukwa zikuwonekeratu kuti DELETE imodzi imatipha mu alumali.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Komanso, kumene gigabytes 16, zikuwonekeratu kuti mano apita kale. Mano ali bwino kale, ndiye kuti tikugogoda padenga, koma osati moyipa kwambiri. Panali ufulu wina kumeneko. Kumanja kuli mbiri. Ndipo kuchuluka kwa ntchito - graph yachiwiri. Ndipo zikuwonekeratu kuti tikupuma kale mosavuta pamene 16 gigabytes.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Ndipo pomwe 64 gigabytes zitha kuwoneka kuti zakhala zabwinoko kotheratu. Kale mano amatchulidwa, pali mwayi wochuluka wopulumuka ntchito zina ndikuchita chinachake ndi disk.

Chifukwa chiyani

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Ndilowa mwatsatanetsatane pang'ono, koma mutuwu, momwe mungayendetsere cheke, ukhoza kubweretsa lipoti lonse, kotero sindidzadzaza zambiri, koma ndifotokoza pang'ono zovuta zomwe zilipo.

Ngati cheke chimachitika nthawi zambiri, ndipo timasintha mizere yathu osati motsatizana, koma pezani ndi index, zomwe zili zabwino, chifukwa sitichotsa tebulo lonse, ndiye kuti zitha kuchitika kuti poyamba tidakhudza tsamba loyamba, kenako chikwi. nabwerera kwa woyamba . Ndipo ngati pakati pa maulendowa patsamba loyamba, poyang'ana adasunga kale ku diski, ndiye kuti adzasunganso, chifukwa tidayipitsanso kachiwiri.

Ndipo tidzakakamiza cheke kuti tisunge nthawi zambiri. Pakadakhala bwanji maopaleshoni osafunikira kwa iye.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Koma si zokhazo. Masamba ndi 8 kilobytes mu Postgres ndi 4 kilobytes ku Linux. Ndipo pali full_page_writes makonda. Zimayatsidwa mwachisawawa. Ndipo izi ndi zolondola, chifukwa ngati tizimitsa, ndiye kuti pali ngozi yakuti theka la tsambalo lidzapulumutsidwa ngati litasweka.

Khalidwe lolembera ku WAL ya chipika chakutsogolo ndiloti tikakhala ndi malo ochezera ndikusintha tsamba kwa nthawi yoyamba, tsamba lonse, mwachitsanzo, ma kilobytes onse a 8, amalowa mu chipika chakutsogolo, ngakhale tidangosintha mzere, womwe umalemera ma byte 100 . Ndipo tiyenera kulemba tsamba lonse.

Muzosintha zotsatila, padzakhala tuple yeniyeni, koma kwa nthawi yoyamba timalemba zonse.

Ndipo, motere, ngati cheke chinachitikanso, ndiye kuti tiyenera kuyambitsanso chilichonse ndikukankhira tsamba lonse. Ndi ma checkpoints pafupipafupi, tikamayenda pamasamba omwewo, full_page_writes = on adzakhala ochuluka kuposa momwe zingakhalire, mwachitsanzo, timapanga WAL yambiri. Zambiri zimatumizidwa ku replicas, ku archive, ku disk.

Ndipo, molingana, tili ndi ma redundancies awiri.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Ngati tiwonjeza max_wal_size, zimakhala kuti timapangitsa kuti zikhale zosavuta kwa onse ofufuza komanso wolemba wal. Ndipo ndizo zabwino.

Tiyeni tiyike terabyte ndikukhala nayo. Choyipa chake ndi chiyani? Izi ndi zoipa, chifukwa ngati kulephera, tidzakwera kwa maola ambiri, chifukwa chekecho chinali kalekale ndipo zambiri zasintha kale. Ndipo tiyenera kuchita zonsezi REDO. Ndipo kotero timachita mndandanda wachiwiri woyesera.

Timapanga opareshoni ndikuwona pomwe cheke chatsala pang'ono kutha, timapha -9 Postgres dala.

Ndipo pambuyo pake timayiyambitsanso, ndikuwona kuti idzauka kwa nthawi yayitali bwanji pazida izi, mwachitsanzo, zidzasintha bwanji muzochitika zoipazi.

Kawiri ndiona kuti zinthu nzoipa. Choyamba, tidagunda malo ochezera asanafike, ndiye kuti tili ndi zambiri zoti titaye. Ndipo chachiwiri, tinali ndi opareshoni yayikulu. Ndipo ngati ma checkpoints anali pa nthawi yake, ndiye, mwinamwake, zochepa za WAL zikanapangidwa kuyambira pofufuza komaliza. Ndiko kuti ndi woluza pawiri.

Timayezera izi mosiyanasiyana max_wal_size kukula kwake ndikumvetsetsa kuti ngati max_wal_size ndi 64 gigabytes, ndiye pawiri moyipa kwambiri tidzakwera kwa mphindi 10. Ndipo timaganiza ngati zikutikomera kapena ayi. Ili ndi funso la bizinesi. Tiyenera kusonyeza chithunzichi kwa omwe ali ndi udindo wosankha bizinesi ndikufunsa kuti, β€œKodi titha kugona mpaka liti pakagwa vuto? Kodi tingagone pansi pamalo oyipa kwambiri kwa mphindi 3-5? Ndipo iwe upanga chisankho.

Ndipo apa pali mfundo yosangalatsa. Tili ndi malipoti angapo okhudza Patroni pamsonkhanowu. Ndipo mwina mukuigwiritsa ntchito. Ichi ndi autofailover ya Postgres. GitLab ndi Data Egret adalankhula za izi.

Ndipo ngati muli ndi autofailover yomwe imabwera mumasekondi 30, ndiye mwina titha kugona kwa mphindi 10? Chifukwa tidzasinthira ku chofanizira pofika pano, ndipo zonse zikhala bwino. Iyi ndi mfundo yolakwika. Sindikudziwa yankho lomveka bwino. Ndikungomva kuti mutuwu sunangokhudza kubwezeretsa ngozi.

Ngati tikhala ndi kuchira kwa nthawi yayitali pambuyo polephera, ndiye kuti tidzakhala osamasuka muzochitika zina zambiri. Mwachitsanzo, muzoyesera zomwezo, tikamachita zinazake ndipo nthawi zina tiyenera kudikirira mphindi 10.

Sindingapitebe patali, ngakhale titakhala ndi autofailover. Monga lamulo, mfundo monga 64, 100 gigabytes ndi makhalidwe abwino. Nthawi zina ndi bwino kusankha zochepa. Kawirikawiri, iyi ndi sayansi yochenjera.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Kuti muchite zobwereza, mwachitsanzo, max_wal_size =1, 8, muyenera kubwereza misala nthawi zambiri. Mwakwanitsa. Ndipo pa maziko omwewo mukufuna kuchita kachiwiri, koma mwachotsa kale chirichonse. Zoyenera kuchita?

Ndikambirana pambuyo pake za yankho lathu, zomwe timachita kuti tibwereze muzochitika zotere. Ndipo iyi ndiyo njira yolondola kwambiri.

Koma pankhaniyi, tinali ndi mwayi. Ngati, monga akunena apa "YAMBA, FUTA, ROLLBACK", ndiye tikhoza kubwereza FUTA. Ndiko kuti, ngati tazithetsa tokha, ndiye kuti tikhoza kubwereza. Ndipo thupi pa inu deta adzagona malo omwewo. Simumadwala ngakhale kutupa. Mutha kubwereza pa DELETE zotere.

DELETE iyi yokhala ndi ROLLBACK ndiyabwino pakukonza cheke, ngakhale mulibe ma laboratory osungidwa bwino.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Tinapanga mbale ndi ndime imodzi "i". Postgres ili ndi zipilala zothandizira. Iwo sawoneka pokhapokha atafunsidwa mwachindunji. Izi ndi: ctid, xmid, xmax.

Ctid ndi adilesi yapanyumba. Zero tsamba, tuple woyamba patsamba.

Zitha kuwoneka kuti pambuyo pa ROOLBACK tuple adakhalabe pamalo omwewo. Ndiko kuti, tikhoza kuyesanso, zikhalanso chimodzimodzi. Ichi ndi chinthu chachikulu.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Xmax ndi nthawi ya kufa kwa tuple. Idasindikizidwa, koma Postgres akudziwa kuti ntchitoyo idabwezeredwa, ndiye zilibe kanthu ngati ndi 0 kapena ndikubweza. Izi zikuwonetsa kuti ndizotheka kubwereza DELETE ndikuwunika momwe machitidwe amachitidwe amagwirira ntchito. Mutha kupanga ma lab a database kwa osauka.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Izi ndi za opanga mapulogalamu. Ponena za DBA, nawonso, amadzudzula opanga mapulogalamu pa izi: "N'chifukwa chiyani mukuchita ntchito zazitali komanso zovuta?". Iyi ndi mutu wosiyana kwambiri wa perpendicular. Poyamba panali utsogoleri, ndipo tsopano padzakhala chitukuko.

Mwachionekere, sitinasweke mzidutswa. Zikumveka. Ndikosatheka kuti musathyole DELETE ngati mulu wa mizere miyandamiyanda kukhala magawo. Zidzachitika kwa mphindi 20, ndipo zonse zidzagona. Koma, mwatsoka, ngakhale opanga odziwa zambiri amalakwitsa, ngakhale m'makampani akuluakulu.

Chifukwa chiyani kuli kofunika kuswa?

  • Ngati tiwona kuti disk ndi yovuta, ndiye kuti tiyichedwetse. Ndipo ngati tasweka, ndiye kuti tikhoza kuwonjezera kupuma, tikhoza kuchepetsa kugwedeza.

  • Ndipo sitidzaletsa ena kwa nthawi yaitali. Nthawi zina zilibe kanthu, ngati mukuchotsa zinyalala zenizeni zomwe palibe amene akugwira ntchito, ndiye kuti simungaletse aliyense kupatula ntchito ya autovacuum, chifukwa imadikirira kuti ntchitoyo ithe. Koma ngati mutachotsa chinachake chimene wina angapemphe, ndiye kuti adzatsekedwa, padzakhala mtundu wina wa unyolo. Zochita zazitali ziyenera kupewedwa pamasamba ndi mafoni.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

https://postgres.ai/products/joe/

Izi ndizosangalatsa. Nthawi zambiri ndimawona opanga akufunsa kuti: "Ndiyenera kusankha paketi yanji?".

Zikuwonekeratu kuti kukula kwake kwa mtolo, kumakhala kochepa kwambiri, mwachitsanzo, zowonjezera zowonjezera kuchokera kuzinthu. Koma panthawi imodzimodziyo, nthawi ikuwonjezeka pazochitika izi.

Ndili ndi lamulo losavuta: tengani momwe mungathere, koma musapitirire zomwe mungachite pamphindikati.

Chifukwa chachiwiri? Mafotokozedwe ake ndi osavuta komanso omveka kwa aliyense, ngakhale anthu omwe si aukadaulo. Tikuwona kuchita. Tiyeni titenge 50 milliseconds. Ngati chinachake chasintha, ndiye kuti diso lathu lidzachitapo kanthu. Ngati zochepa, ndiye zovuta kwambiri. Ngati china chake chiyankhidwa pambuyo pa ma milliseconds 100, mwachitsanzo, mudadina mbewa, ndipo idakuyankhani pambuyo pa ma milliseconds 100, mumamva kale kuchedwa pang'ono. Sekondi imodzi imawonedwa kale ngati mabuleki.

Chifukwa chake, ngati tiphwanya ntchito zathu zazikulu kukhala zophulika za 10-sekondi, ndiye kuti tili ndi chiopsezo choletsa wina. Ndipo idzagwira ntchito kwa masekondi angapo, ndipo anthu azindikira kale. Chifukwa chake, sindimakonda kupitilira sekondi imodzi. Koma panthawi imodzimodziyo, musaphwanye bwino kwambiri, chifukwa ntchitoyo idzawoneka bwino. Maziko adzakhala ovuta, ndipo mavuto ena osiyanasiyana angabwere.

Timasankha kukula kwa paketi. Pazochitika zonsezi, tikhoza kuchita mosiyana. Zitha kukhala zokha. Ndipo tili otsimikiza za dzuwa la processing wa paketi imodzi. Ndiye kuti, timachita DELETE ya paketi imodzi kapena UPDATE.

Mwa njira, zonse zomwe ndikunena sizongokhudza DELETE. Monga mukuganizira, izi ndizochitika zambiri pa data.

Ndipo tikuwona kuti pulaniyo ndiyabwino kwambiri. Mutha kuwona kusakatula kwa index, index yokha ndiyo yabwinoko. Ndipo tili ndi deta yaying'ono yomwe ikukhudzidwa. Ndipo osakwana sekondi imodzi amakwaniritsa. Super.

Ndipo tiyenerabe kuonetsetsa kuti palibe kunyozeka. Zimachitika kuti mapaketi oyambilira akugwira ntchito mwachangu, ndiyeno amakula kwambiri, amayipa kwambiri. Ndondomekoyi ndi yakuti muyenera kuyesa kwambiri. Izi ndi zomwe ma database a labotale amapangira.

Ndipo tikuyenerabe kukonzekera zinazake kuti zitilole kutsatira izi moyenera popanga. Mwachitsanzo, tikhoza kulemba nthawi mu chipika, tikhoza kulemba kumene ife tiri tsopano ndi amene tachotsa. Ndipo zimenezi zidzatithandiza kumvetsetsa zimene zicitika pambuyo pake. Ndipo ngati chinachake chalakwika, mwamsanga kupeza vuto.

Ngati tifunika kuyang'ana momwe zopemphazo zikuyendera ndipo tiyenera kubwereza nthawi zambiri, ndiye kuti pali chinthu chonga bot mnzako. Iye ali wokonzeka kale. Amagwiritsidwa ntchito ndi ambiri opanga tsiku lililonse. Ndipo amadziwa momwe angaperekere database yayikulu ya terabyte popempha mumasekondi 30, buku lanu. Ndipo mutha kuchotsa china chake pamenepo ndikuti RESET, ndikuchichotsanso. Mutha kuyesa nazo motere. Ndikuwona tsogolo la chinthu ichi. Ndipo tikuchita kale.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

https://docs.gitlab.com/ee/development/background_migrations.html

Kodi njira zogawanitsa ndi ziti? Ndikuwona njira zitatu zogawanitsa zomwe opanga pa paketi akugwiritsa ntchito.

Yoyamba ndi yosavuta. Tili ndi nambala ya ID. Ndipo tiyeni tizigawanitsa izo mu intervals zosiyanasiyana ndi ntchito ndi izo. Choyipa chake ndi chodziwikiratu. Mu gawo loyamba, titha kukhala ndi mizere 100 ya zinyalala zenizeni, mumizere 5 yachiwiri kapena ayi, kapena mizere yonse 1 idzakhala zinyalala. Ntchito yosagwirizana kwambiri, koma ndiyosavuta kuswa. Anatenga nambala ya ID ndikuiphwanya. Iyi ndi njira yopanda nzeru.

Njira yachiwiri ndi njira yoyenera. Amagwiritsidwa ntchito ku Gitlab. Anatenga ndikusanthula tebulo. Tinapeza malire a mapaketi a ID kotero kuti paketi iliyonse inali ndi zolemba 10 ndendende. Ndi kuwayika iwo pamzere. Kenako timakonza. Mutha kuchita izi mumitundu yambiri.

Mu njira yoyamba, inunso, mwa njira, mukhoza kuchita izi mu ulusi angapo. Sizovuta.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

https://medium.com/@samokhvalov/how-partial-indexes-affect-update-performance-in-postgres-d05e0052abc

Koma pali njira yozizirira komanso yabwinoko. Iyi ndi njira yachitatu. Ndipo ngati n’kotheka, ndi bwino kusankha. Timachita izi pamaziko a index yapadera. Pachifukwa ichi, chikhala cholozera malinga ndi chikhalidwe chathu cha zinyalala ndi ID. Tidzaphatikiza ID kuti ikhale index yokhayo kuti tisapite kumulu.

Nthawi zambiri, kusanthula kokha ndikothamanga kuposa kusanja kwa index.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Ndipo timapeza mwachangu ma ID athu omwe tikufuna kuchotsa. BATCH_SIZE timasankhiratu. Ndipo sitimangowapeza, timawapeza m'njira yapadera ndipo timawasokoneza nthawi yomweyo. Koma tikutseka kuti ngati atseka kale, tisamatseke, koma pitirirani ndi kutenga ena. Izi ndi zokhoma kudumphira. Mbali yapamwamba iyi ya Postgres imatilola kugwira ntchito mu ulusi angapo ngati tikufuna. Ndizotheka mumtsinje umodzi. Ndipo apa pali CTE - ichi ndi pempho limodzi. Ndipo tili ndi kuchotsedwa kwenikweni komwe kukuchitika mu chipinda chachiwiri cha CTE iyi - returning *. Mutha kubweza ID, koma ndizabwino *ngati mulibe zambiri pa mzere uliwonse.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

N’chifukwa chiyani tikuzifuna? Izi ndi zomwe tiyenera kuyankha. Tsopano tachotsa mizere yambiri kwenikweni. Ndipo tili ndi malire ndi ID kapena popangidwa_monga chonchi. Mutha kuchita min, max. Chinanso chingathe kuchitika. Mutha kupeza zambiri apa. Ndipo ndi yabwino kwambiri kuwunika.

Pali cholemba chinanso chokhudza index. Ngati tiganiza kuti tifunika index yapadera ya ntchitoyi, ndiye kuti tiyenera kuonetsetsa kuti sichikuwononga milu yokha yosintha ma tuples. Ndiye kuti, Postgres ali ndi ziwerengero zotere. Izi zitha kuwoneka mu pg_stat_user_tables patebulo lanu. Mutha kuwona ngati zosintha zotentha zikugwiritsidwa ntchito kapena ayi.

Pali nthawi zina pomwe index yanu yatsopano ingangowadula. Ndipo muli ndi zosintha zina zonse zomwe zikugwira ntchito kale, chepetsani. Osati chifukwa chakuti ndondomekoyi idawonekera (cholozera chilichonse chimachepetsa zosintha pang'ono, koma pang'ono), koma apa zikuwonongabe. Ndipo ndizosatheka kupanga kukhathamiritsa kwapadera pa tebulo ili. Izi zimachitika nthawi zina. Izi ndi zochenjera kwambiri zomwe anthu ochepa amazikumbukira. Ndipo chowotcha ichi ndi chosavuta kupondapo. Nthawi zina zimachitika kuti muyenera kupeza njira kuchokera kumbali ina ndikuchitabe popanda index yatsopanoyi, kapena kupanga index ina, kapena mwanjira ina, mwachitsanzo, mutha kugwiritsa ntchito njira yachiwiri.

Koma iyi ndiye njira yabwino kwambiri, momwe mungagawire magulu ndikuwombera magulu ndi pempho limodzi, kufufuta pang'ono, ndi zina zambiri.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Zochita zazitali https://gitlab.com/snippets/1890447

Autovacuum yotsekedwa - https://gitlab.com/snippets/1889668

kutsekereza vuto - https://gitlab.com/snippets/1890428

Cholakwika #5 ndi chachikulu. Nikolai waku Okmeter adalankhula za kuwunika kwa Postgres. Kuwunika kwabwino kwa Postgres, mwatsoka, kulibe. Ena ali pafupi, ena ali kutali. Okmeter ili pafupi kuti ikhale yabwino, koma zambiri zikusowa ndipo ziyenera kuwonjezeredwa. Muyenera kukhala okonzekera izi.

Mwachitsanzo, ma tuple akufa amawunikidwa bwino. Ngati muli ndi zinthu zambiri zakufa patebulo, ndiye kuti chinachake chalakwika. Ndi bwino kuchitapo kanthu tsopano, apo ayi pangakhale kunyozeka, ndipo tikhoza kugona. Zimachitika.

Ngati pali IO yaikulu, ndiye kuti izi sizabwino.

Zochita zazitali nazonso. Zochita zazitali siziyenera kuloledwa pa OLTP. Ndipo nayi ulalo wachidule chomwe chimakulolani kuti mutenge kachidutswa kakang'ono kameneka ndikutsatira kale zochitika zazitali.

N'chifukwa chiyani zochita zazitali zimakhala zoipa? Chifukwa maloko onse adzamasulidwa pomaliza. Ndipo timawononga aliyense. Kuphatikiza apo, timaletsa autovacuum pamagome onse. Si zabwino konse. Ngakhale mutakhala ndi choyimirira chotentha choyatsidwa pa chofananira, ndichabechabe. Nthawi zambiri, palibe komwe kuli bwino kupewa kugulitsa nthawi yayitali.

Ngati tili ndi matebulo ambiri omwe sanachotsedwe, ndiye kuti tiyenera kukhala tcheru. Apa mkhalidwe wotero ndi wotheka. Titha kukhudza mwachindunji magwiridwe antchito a autovacuum. Ichi ndi chidule cha Avito, chomwe ndidachita bwino. Ndipo chidakhala chida chosangalatsa kuwona zomwe tili nazo ndi autovacuum. Mwachitsanzo, matebulo ena akudikirira pamenepo ndipo sadikira nthawi yawo. Muyeneranso kuziyika muzowunikira ndikukhala tcheru.

Ndipo mavuto amatchinga. Nkhalango yamitengo ya block. Ndimakonda kutenga china chake ndikuchikonza. Apa ndinatenga CTE yozizira yobwereza kuchokera ku Data Egret yomwe ikuwonetsa nkhalango yamitengo yotseka. Ichi ndi chida chabwino chodziwira matenda. Ndipo pamaziko ake, mutha kumanganso kuyang'anira. Koma izi ziyenera kuchitidwa mosamala. Muyenera kupanga pang'ono statement_timeout nokha. Ndipo lock_timeout ndiyofunika.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Nthawi zina zolakwa zonsezi zimachitika mwachidule.

Malingaliro anga, kulakwitsa kwakukulu apa ndi bungwe. Ndi bungwe, chifukwa njirayo sikukoka. Ichi ndi nambala 2 - adayang'ana pamalo olakwika.

Tinayang'ana pamalo olakwika, chifukwa tinalibe chojambula chopanga, chomwe ndi chosavuta kuyang'ana. Wopanga mapulogalamu sangakhale ndi mwayi wopanga konse.

Ndipo sitinayang'ane pamenepo. Tikadafufuza mmenemo, tikadadziwonera tokha. Wopanga mapulogalamu adaziwona zonse ngakhale popanda DBA ngati adaziyang'ana pamalo abwino, pomwe pali kuchuluka kwa data ndi malo ofanana. Akadaona kunyozeka konseku ndipo angachite manyazi.

Zambiri za autovacuum. Titasesa kwambiri mizere mamiliyoni angapo, tikufunikabe kuchita REPACK. Izi ndizofunikira makamaka pama index. Adzamva chisoni titayeretsa zonse kumeneko.

Ndipo ngati mukufuna kubweretsanso ntchito yoyeretsa tsiku ndi tsiku, ndinganene kuti muzichita nthawi zambiri, koma zochepa. Itha kukhala kamodzi pa miniti kapena mochulukirapo pang'ono. Ndipo muyenera kuyang'anira zinthu ziwiri: kuti chinthu ichi chilibe zolakwika komanso kuti sichitsalira. Chinyengo chomwe ndidawonetsa chidzathetsa izi.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Zomwe timachita ndi open source. Idayikidwa pa GitLab. Ndipo timapanga kuti anthu athe kuyang'ana ngakhale opanda DBA. Tikuchita labu ya database, ndiye kuti, timatcha gawo loyambira lomwe Joe akugwira ntchito pano. Ndipo mukhoza kutenga kope la kupanga. Tsopano pali kukhazikitsidwa kwa Joe chifukwa cha kufooka, mutha kunena pamenepo: "fotokozani zopempha izi" ndipo pezani zotsatira zake patsamba lanu. Mutha KUFUTA pamenepo, ndipo palibe amene angazindikire.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Tiyerekeze kuti muli ndi ma terabytes 10, timapanga labu ya database kukhalanso ma terabytes 10. Ndipo ndi ma 10 terabyte databases munthawi yomweyo, opanga 10 amatha kugwira ntchito nthawi imodzi. Aliyense akhoza kuchita zomwe akufuna. Ikhoza kufufuta, kugwetsa, etc. Ndizo zongopeka. Tikambirana mawa.

Wokondedwa DELETE. Nikolay Samokhvalov (Postgres.ai)

Izi zimatchedwa kuperewera kwa zakudya m'thupi. Izi ndi zopatsa chidwi. Izi ndi zongopeka zamtundu wina zomwe zimachotsa kwambiri kuchedwa kwa chitukuko, pakuyesa ndikupanga dziko kukhala malo abwino pankhaniyi. Ndiko kuti, zimangokulolani kuti mupewe mavuto ndi ntchito zambiri.

Chitsanzo: 5 terabyte database, kupeza kopi pasanathe masekondi 30. Ndipo sizitengera ngakhale kukula kwake, ndiye kuti, zilibe kanthu kuti ndi ma terabytes angati.

Lero mukhoza kupita postgres.ai ndi kukumba zida zathu. Mutha kulembetsa kuti muwone zomwe zilipo. Mutha kukhazikitsa bot iyi. Ndi zaulere. Lembani.

Mafunso anu

Nthawi zambiri muzochitika zenizeni zimakhala kuti zomwe ziyenera kukhala patebulo ndizochepa kwambiri kuposa zomwe ziyenera kuchotsedwa. Ndiko kuti, muzochitika zotere, nthawi zambiri zimakhala zosavuta kugwiritsa ntchito njira yotereyi, pamene zimakhala zosavuta kupanga chinthu chatsopano, kukopera deta yofunikira pamenepo, ndikuyika tebulo lakale. Zikuwonekeratu kuti njira yamadongosolo ndiyofunika panthawiyi, pamene mukusintha. Kodi njira imeneyi ndi yotani?

Iyi ndi njira yabwino kwambiri komanso ntchito yabwino kwambiri. Ndizofanana kwambiri ndi zomwe pg_repack imachita, ndizofanana kwambiri ndi zomwe muyenera kuchita mukapanga ma ID 4 mabayiti. Zomangamanga zambiri zidachita izi zaka zingapo zapitazo, ndipo mbale zokha zakula, ndipo ziyenera kusinthidwa kukhala ma 8 ma byte.

Ntchitoyi ndi yovuta kwambiri. Ife tinachita izo. Ndipo muyenera kusamala kwambiri. Pali maloko, etc. Koma zikuchitika. Ndiye kuti, njira yokhazikika ndikupita ndi pg_repack. Inu mumalengeza chizindikiro chotero. Ndipo musanayambe kuyikamo chithunzithunzi, mumalengezanso mbale imodzi yomwe imatsata zosintha zonse. Pali chinyengo choti simungathe ngakhale kutsatira zosintha zina. Pali subtleties. Ndiyeno inu kusintha ndi kugubuduza zosintha. Padzakhala kupuma pang'ono pamene titseka aliyense, koma kawirikawiri izi zikuchitika.

Ngati muyang'ana pg_repack pa GitHub, ndiye, pamene panali ntchito yosinthira ID kuchokera ku int 4 kupita ku int 8, ndiye panali lingaliro logwiritsa ntchito pg_repack palokha. Izi ndizothekanso, koma ndizovuta pang'ono, koma zithandizanso izi. Mutha kulowererapo pazomwe pg_repack amagwiritsa ntchito ndikuti: "Sitikufuna izi", mwachitsanzo, timangosamutsa zomwe tikufuna. Ndiyeno amangosintha ndipo ndi zimenezo.

Ndi njira iyi, timapezabe kope lachiwiri la tebulo, momwe deta yasonyezedwa kale ndikuyikidwa mofanana kwambiri ndi ma index okongola.

Bloat palibe, ndi njira yabwino. Koma ndikudziwa kuti pali zoyesayesa zopanga makina opangira izi, mwachitsanzo, kupanga yankho lachilengedwe chonse. Ndikhoza kukulumikizani ndi automation iyi. Zalembedwa mu Python, zomwe ndi zabwino.

Ndangotsala pang'ono kudziko la MySQL, kotero ndidabwera kudzamvetsera. Ndipo timagwiritsa ntchito njira iyi.

Koma ngati tili ndi 90%. Ngati tili ndi 5%, ndiye kuti sibwino kugwiritsa ntchito.

Zikomo chifukwa cha lipoti! Ngati palibe zothandizira kupanga buku lathunthu la prod, kodi pali ma aligorivimu kapena fomula yowerengera katundu kapena kukula kwake?

Funso labwino. Pakadali pano, tikutha kupeza ma database ambiri a terabyte. Ngakhale zida zomwe sizili zofanana, mwachitsanzo, kukumbukira pang'ono, purosesa yocheperako ndi ma disks sizili zofanana, komabe timachita. Ngati palibe paliponse, ndiye kuti muyenera kuganiza. Ndiloleni ndiganize mpaka mawa mwabwera tikambirana ili ndi funso labwino.

Zikomo chifukwa cha lipoti! Munayamba poyamba ponena kuti pali Postgres yozizira, yomwe ili ndi zofooka zotere, koma ikukula. Ndipo izi zonse ndi njira yayikulu. Kodi zonsezi sizikutsutsana ndi chitukuko cha Postgres mwiniwake, momwe ena a DELETE deferent adzawonekera kapena chinthu china chomwe chiyenera kukhala chochepa chomwe tikuyesera kupaka ndi njira zathu zachilendo pano?

Ngati tanena mu SQL kuti tichotse kapena kusinthira zolemba zambiri pakuchita kumodzi, ndiye kuti Postgres angagawire bwanji pamenepo? Ndife operewera pakuchita maopaleshoni. Tizichitabe kwa nthawi yayitali. Ndipo tidzatseka nthawi ino, etc.

Ndathana ndi ma index.

Nditha kuganiza kuti kuwongolera komweko kutha kukhala kokha. Tsiku lina zikhoza kukhala. Koma ndiye sindikumvetsa kwenikweni funsolo.

Funso ndilakuti, kodi pali gwero lachitukuko lotere lomwe limapita uku ndi uku, ndipo apa lanu likufanana? Iwo. Kodi sanaganizirebe za izo?

Ndinalankhula za mfundo zomwe zingagwiritsidwe ntchito panopa. Pali bot ina Nancy, ndi izi mutha kupanga ma checkpoint tuning. Kodi tsiku lina zidzakhala ku Postgres? Sindikudziwa, sizinakambidwe nkomwe. Tidakali kutali ndi zimenezo. Koma pali asayansi omwe amapanga machitidwe atsopano. Ndipo amatikankhira ku indexes zokha. Pali zochitika. Mwachitsanzo, mukhoza kuyang'ana pa auto tuning. Imasankha magawo basi. Koma iye sadzakukonzerani panobe. Ndiye kuti, idzatengera magwiridwe antchito, buffer ya zipolopolo, ndi zina.

Ndipo pakukonza cheke, mutha kuchita izi: ngati muli ndi magulu chikwi ndi zida zosiyanasiyana, makina osiyanasiyana pamtambo, mutha kugwiritsa ntchito bot yathu. Nancy kuchita zokha. Ndipo max_wal_size adzasankhidwa molingana ndi zokonda zanu zokha. Koma mpaka pano izi siziri pafupi kwenikweni, mwatsoka.

Masana abwino Munakamba za kuopsa kwa malonda aatali. Munanena kuti autovacuum yatsekedwa ngati yachotsedwa. Nanga zimatipwetekanso bwanji? Chifukwa tikukamba zambiri za kumasula malo ndikutha kugwiritsa ntchito. Ndi chiyani chinanso chomwe tikusowa?

Autovacuum mwina si vuto lalikulu pano. Ndipo chifukwa chakuti kuchitapo kanthu kwautali kumatha kutseka zochitika zina, izi ndizowopsa kwambiri. Akhoza kukumana kapena ayi. Ngati iye anakumana, ndiye izo zikhoza kukhala zoipa kwambiri. Ndipo ndi autovacuum - ilinso ndi vuto. Pali zovuta ziwiri ndikuchita kwanthawi yayitali mu OLTP: maloko ndi autovacuum. Ndipo ngati muli ndi ndemanga yotentha yoyimilira yomwe yathandizidwa pachifanizirocho, ndiye kuti loko ya autovacuum ifikanso pa mbuyeyo, ifika kuchokera pachifanizirocho. Koma mwina sipadzakhala maloko. Ndipo padzakhala malo. Tikukamba za kusintha kwa deta, kotero maloko ndi mfundo yofunikira apa. Ndipo ngati izi zonse zakhala kwa nthawi yayitali, yayitali, ndiye kuti zochitika zambiri zimatsekedwa. Akhoza kuba ena. Ndipo taonani mitengo. Ndapereka ulalo wachidutswacho. Ndipo vutoli limawonekera mwachangu kuposa vuto la autovacuum, lomwe limatha kudziunjikira.

Zikomo chifukwa cha lipoti! Munayamba lipoti lanu ponena kuti munayesa molakwika. Tinapitirizabe lingaliro lathu kuti tiyenera kutenga zipangizo zomwezo, ndi maziko mofanana. Tinene kuti tapatsa wopanga maziko. Ndipo anachitadi zimene anapemphazo. Ndipo akuwoneka kuti ali bwino. Koma samayang'ana moyo, koma moyo, mwachitsanzo, tili ndi katundu wa 60-70%. Ndipo ngakhale titagwiritsa ntchito kukonza uku, sikukuyenda bwino.

Kukhala ndi katswiri pa gulu ndi kugwiritsa ntchito akatswiri a DBA omwe angathe kudziwiratu zomwe zidzachitike ndi katundu weniweni wa maziko ndizofunikira. Pamene tinangoyendetsa zosintha zathu zoyera, timawona chithunzicho. Koma njira yapamwamba kwambiri, pamene tinachita chinthu chomwecho kachiwiri, koma ndi katundu wofanana ndi kupanga. Ndi zabwino ndithu. Mpaka pamenepo, muyenera kukula. Zili ngati munthu wamkulu. Tidangoyang'ana zomwe tili nazo komanso kuyang'ana ngati tili ndi zothandizira zokwanira. Ndilo funso labwino.

Pamene tikuchita kale kusankha zinyalala ndipo tili, mwachitsanzo, mbendera yochotsedwa

Izi ndi zomwe autovacuum imachita zokha ku Postgres.

O, kodi iye amachita izo?

Autovacuum ndiye wotolera zinyalala.

Бпасибо!

Zikomo chifukwa cha lipoti! Kodi pali njira yopangira nthawi yomweyo nkhokwe yogawanitsa m'njira yoti zinyalala zonse zidetsedwe kuchokera patebulo lalikulu kwinakwake kupita kumbali?

Zoonadi.

Ndiye kodi n’zotheka kudziteteza ngati takhoma tebulo limene siliyenera kugwiritsidwa ntchito?

Zoonadi. Koma zili ngati funso la nkhuku ndi dzira. Ngati tonse tikudziwa zomwe zidzachitike m'tsogolo, ndiye kuti tidzachita zonse bwino. Koma bizinesi ikusintha, pali mizati yatsopano, zopempha zatsopano. Ndiyeno - oops, tikufuna kuchotsa. Koma mkhalidwe wabwino uwu, m'moyo umachitika, koma osati nthawi zonse. Koma zonse ndi lingaliro labwino. Ingochepetsani ndipo ndi momwemo.

Source: www.habr.com

Kuwonjezera ndemanga