Hacker News

E toru nga papa keteroki i waenga i te kopae me te kopae

E toru nga papa keteroki i waenga i te kopae me te kopae Ka rukuhia tenei torotoro ki roto i te toru, e tirotiro ana i tona hiranga me te paanga pea. Ko nga Kaupapa Kaupapa kua hipokina Ka torotoro tenei ihirangi: Nga maataapono me nga ariā Parakatihi...

12 min read Via frn.sh

Mewayz Team

Editorial Team

Hacker News

I te wa e pupuhi ana to tono i tetahi korero SELECT, karekau rawa taua patai e pa ki te kopae hurihuri, ki te rokiroki kohiko mata ranei — ka haere ma roto i nga paparanga keteroki motuhake e toru e whakatau wahangu ana mena ka tae mai to whakautu i roto i te moroiti hēkona, i te mirihakona ranei. Ko te mohio ki enei paparanga ko te rereketanga i waenga i te turanga pakihi e tauine ngawari ana me tetahi e mau ana i raro i nga kawenga o te ao.

He aha te mea ka puta mai te Uiui whiriwhiri i to tono?

I te wa ka tukuna e to tono he uinga SELECT, ka uru ki te paipa kore te nuinga o nga kaiwhakawhanake e tirotiro. Ka haukotia e te miihini patengi raraunga te tono i mua i te puta mai o tetahi I/O, ka poroporoaki i te SQL ki roto i te mahere mahi o roto me te korero tonu ki tana rarangi whakamarumaru tuatahi: te keteroki hua o te patai. Mena i mahia he patai rite me nga tawhā rite, ka taea e te miihini te whakahoki i te huinga hua keteroki me te kore e pa ki tetahi wharangi raraunga. I etahi wa ka kiia tenei ko te keteroki uiuihe keteroki hua ranei, a, i runga i nga taumahatanga o te panui-nui, iti-tuhi-tuhi - penei i nga papatohu tātaritanga me nga waahanga ripoata - ka taea te whakakore i te nuinga o nga panui kōpae.

Ko te tino mohio kei konei ko te keteroki uinga he tino tairongo ki nga huringa raraunga. Ko nga INSERT, UPDATE, DELETE ranei ki te ripanga o raro ka whakakore i nga hua keteroki e tika ana. Koinei te take ka monokia katoatia e nga punaha tauwhitinga tuhi-taimaha te keteroki patai, ka whakawhirinaki ki nga paparanga hohonu.

He aha te Puawai Puawai me te aha he mea nui ake i to whakaaro?

Ko te paparanga keteroki tuarua — me te mea ko te mea nui rawa atu i roto i nga punaha whakaputa — ko tepokau papaaa(e kiia ana ko te parepare tiritahi i PostgreSQL, ko te puna putunga InnoDB i MySQL). He rohe tenei o te RAM e whakamahia ana e te miihini patengi raraunga ki te pupuri i nga wharangi raraunga kua uru mai. Ki te kore e taea te tuku patai mai i te keteroki hua, ka tirohia e te miihini mena kei te noho kee nga wharangi raraunga e hiahiatia ana i roto i te puna waipara i mua i te tuku i tetahi panui kōpae.

E mahi ana te puna kaukau i runga i te maataapono o te waahi waahi me te waahi mokowā: ko nga raraunga kua uru atu katahi ano ka uru atu ano, a ko nga raraunga kua penapena tata ki nga raraunga uru ka uru wawe. Ko nga kaiwhakahaere o te Raraunga Raraunga ka whakatauhia te rahi o te puna kaukau hei tetahi o nga whakatau whirihoranga tino-nui ka mahia e ratou. Na te iti rawa o te puna wai whakapuru ka puta te pananga wharangi, ka puta he ahuatanga e kiia nei ko te thrashing, he nui ake te wa e pau ai te punaha ki te whakahaere i nga ngaro keteroki i te mahi patai.

Maramatanga Matua: I roto i te nuinga o nga kawenga mahi OLTP, he pai te rahi o te puna papaaa te tikanga 95–99% o nga panui raraunga katoa ka tukuna mai i te RAM. Ko te huinga mahi - ko te waahanga o to raraunga e pa ana ki nga patai - he iti ake i te rahinga raraunga katoa. Ko te rahinga o to puna kaukau kia uru ki to huinga mahi, kaua ki to huingararaunga katoa, ko te mahi whakatika-whakahoki teitei ka taea e koe.

Me pehea te Whakaki i te Keteroki Pūnaha Whakahaere i te Aputa i waenga i te RAM me te Kōpae?

Ahakoa ka ngaro te puna putunga o te putunga putunga, kare ano he patai mo te panui kōpae pono. Ko te punaha whakahaere kei te pupuri i tetahiketeroki wharangi(e kiia ana ko te keteroki punaha konae), he rohe o te RAM e whakahaeretia ana e te kernel e panui ana, e tuhi ana hei aukati i nga taputapu. Ina tono te miihini patengi raraunga ki tetahi wharangi karekau mai i tana puna putunga, ka tirohia e te pata OS tana ake keteroki wharangi i mua i te tuku tono I/O tinana ki te kaiwhakahaere rokiroki.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Ko tenei paparanga tuatoru kare e kitea e nga kaiwhakawhanake tono engari he mea nui ki runga i nga punaha kei te iti te whakaratonga o te puna putunga papaa raraunga. Ka tohatohahia te keteroki wharangi OS puta noa i nga mahi katoa, na reira ka whakataetae ki to tūmau tono, tūmau tukutuku, me etahi atu rorohiko e rere ana i runga i te ope kotahi. I runga i nga tuumau papaaarangi kua whakatapua, he iti noa tenei whakataetae, a ko te keteroki OS e whakarato ana i te taapiri tuarua-waahi. I runga i nga kaihautu tiritiri, i nga ipu me nga tepe maumahara kiki, he iti rawa te keteroki OS hei awhina.

Ko Tehea te Paparanga Keteroki He kawenga mo te nuinga o nga wikitoria i roto i te Parakatihi?

I roto i nga punaha whakangao-a-ao, ko te puna waipara te rangatira o nga hua mahinga ma te whanui whanui. Koinei te take he rereke te koha o ia paparanga puta noa i nga keehi:

  • Keteroki hua patai: He tino painga mo te panui-taimaha, te nuinga o nga huingararaunga pateko - te tuku patai, nga papatohu keteroki, nga waahi mutunga o te ihirangi whanui. He koretake i runga i nga papa tuhi-taimaha.
  • Ko te puna papaaarangi: Ko te hoha mahi mo te ao katoa. Ko ia tūmau pātengi raraunga whakaputa me aro ki konei i te tuatahi. He pai te hapai i nga tauira uru matapōkere me te raupapa.
  • Keteroki whārangi OS: Ka whakaratohia he kupenga haumaru ina he iti te rahi o te puna wai. Ka tino awhina ano hoki i te wa e tirotirohia ana nga ripanga nui ka peia atu nga wharangi wera mai i te puna kaukau.
  • Keteroki pūmana rokiroki (papanga pūmārō): Ko te paparanga tuawha, ka warewarehia - Ko nga SSD NVMe me nga kaiwhakahaere RAID kei te pupuri i nga keteroki tuhi i runga i te papa me te taapiri i te pākahiko, i te punga hiko ranei. Ma tenei ka tiaki i te mauroa me te kore e pau te mahi tuhi i runga i te utu o te torohūtanga fsync.
  • Keteroki papa-tono (Redis, Memcached): Ka noho ki runga ake i te paparangi raraunga, ka keteroki i nga hua uiui rangatū, i nga mea rorohiko ranei kia kore ai e pa ki te patengi raraunga — he pai mo nga papaaho SaaS kairëti maha e mahi ana i nga mano o nga kaiwhakamahi kotahi.

Me pehea e taea ai e nga papa pakihi hou te whakamahi i te hangahanga keteroki mo te pono i te tauine?

Mo nga pakihi e mahi ana puta noa i te maha o nga waahanga mahi - CRM, whakahaere kaupapa, e-tauhokohoko, tātaritanga - ko te hoahoanga keteroki e whakatau tika ana i te aro o te papaaho i te wa e tipu ana nga roopu. Ko nga papahanga i hangaia i runga i te rautaki keteroki pai te paparanga ka taea te mahi i nga mano tini o nga kaiwhakamahi i te wa kotahi kaore he utu hanganga rite. Ko te mea nui ko te hoahoa i nga tauira urunga raraunga e whakaute ana i nga rohe keteroki: te pupuri i nga raraunga wera kia iti me nga tauira uru ka taea te matapae, te whakamahi i nga tauira panui ki te tohatoha i te kawenga puna kaukau, me te whakanoho i te keteroki papa-tono penei i a Redis ki mua i te papaa raraunga mo nga pito mutunga e tuku raraunga rite ana ki nga kaiwhakamahi maha i te wa kotahi.

He mea hanga a Mewayz me tenei tikanga whakaaro. Ma te 207 whakaurunga kaupapa pakihi e kaha ana i runga i te 138,000 nga kaiwhakamahi, kua hoahoatia te paparanga raraunga o te papaapapa kia tukuna te nuinga o nga panui mai i te keteroki — kia tere te whakautu i nga wa whakautu me nga utu hangahanga ka kitea mena kei te whakahaere koe i runga i te mahere timata $19/marama, te taumata ngaio $49/marama.

Patai Auau

Ko te whakakore i te keteroki uinga ka whakapai ake i nga mahi o te patengi raraunga?

Kaore i nga wa katoa, engari mo nga kawenga mahi-taimaha ka mahia. Ko te keteroki uinga e hiahia ana ki te mutex o te ao hei pupuri i te riterite, ka waiho hei kohungahunga i raro i te whakakotahitanga teitei. I tangohia katoatia e MySQL 8.0 te keteroki uiui mo tenei take. Kaore a PostgreSQL i whakatinana i te keteroki uiui i hangaia, me te whakawhirinaki atu ki te puna papaa me te keteroki paparanga tono. Mēnā he nui tō ōwehenga pānui-ki-tuhi, ā, he tino tukurua ō pātai, ka taea e te keteroki uiui te whakaputa hua tūturu — ki te kore, whakangaohia taua whakapau kaha ki roto i te puna papaa.

Me pehea ahau e mohio ai mena he tika te rahi o taku puna kaukau?

Aroturukihia to ōwehenga o te poka wai whakaraerae: te ōrau o nga tono wharangi i tukuna mai i te puna me era e hiahia ana kia panui te kōpae. Ko te ōwehenga i raro i te 95% i runga i te kawenga mahi OLTP he tohu hei whakanui ake i te rahi o te puna. I roto i te MySQL, uia SHOW ENGINE INNODB STATUSka titiro ki te reiti patu poka wai buffer. I roto i te PostgreSQL, ko te tirohanga pg_statio_user_tables e whakaatu ana i nga poraka puranga kua panuitia mai i te kopae me te mahi mai i te puna putunga. Ko te whai ki te pupuri i to huinga mahi katoa — kaua ko to huingararaunga katoa — noho i roto i te RAM.

He aha te hononga i waenga i nga paparanga keteroki me te pono o te SaaS kairëti maha?

I roto i te SaaS kairëti maha, ka aukatihia e nga papa keteroki nga raruraru "hoa tata" ka paheke te mahi a te kairëti ki te uta i nga paatai ​​mo etahi atu kairëti katoa. Ko te keteroki tono a te kairëti me te whakakore i runga i te TTL ka pupuri i nga raraunga wera mo ia kairëti i Redis, ka tino whakaitihia te pehanga poka wai mai i nga kaute nui. Ko te whakahiatotanga hononga taumata-raunga raraunga me te puna wai whakaahuru mahana ka whakarite kia kore te ngohe pakaru mai i te kaute kotahi e kumara i nga wharangi tiri mai i te keteroki me te paheketanga o te waahi puta noa i te papaaho.


Ehara nga paparanga keteroki i nga mea iti putunga - ko te turanga hoahoanga e wehe ana i nga papaaho e noho tere ana i te tauine mai i nga mea e hiahia ana kia mau tonu te patu ahi. Mena kei te hanga koe, kei te whakahaere pakihi ranei e hiahia ana koe ki tetahi papaaho kua tino arotautia mo enei ahuatanga pono, tuhurahia a Mewayz i te app.mewayz.com — 207 kōwae, kotahi te papaaho honohono, i hangaia kia pono te mahi mai i to kaiwhakamahi tuatahi ki to rau-mano.