Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ko taku whakaaro kia panui koe i te tuhinga o te purongo a Vladimir Sitnikov i te timatanga o te tau 2016 "Kei te pehia e PostgreSQL me JDBC nga wai katoa"

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Kia pai te ahiahi Ko Vladimir Sitnikov toku ingoa. Kua 10 tau ahau e mahi ana mo NetCracker. A ko ahau te nuinga ki te hua. Ko nga mea katoa e pa ana ki a Java, ko nga mea katoa e pa ana ki a SQL ko taku e pai ana.

A i tenei ra ka korero ahau mo nga mea i tutakihia e matou i roto i te kamupene i te wa i timata ai matou ki te whakamahi i te PostgreSQL hei tūmau pātengi raraunga. A ko te nuinga o taatau mahi me Java. Engari ko taku korero i tenei ra ehara i te mea mo Java anake. Ka rite ki nga mahi kua whakaatuhia, ka puta ano tenei i etahi atu reo.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ka korero tatou:

  • mo te tauira raraunga.
  • Mo te tiaki raraunga.
  • Na mo te mahi.
  • A mo nga rake raro wai e tanumia ana ki reira.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Me timata ma te patai ngawari. Ka tohua e matou tetahi rarangi mai i te ripanga i runga i te matua matua.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Kei te kaihautu kotahi te papaunga raraunga. A ko enei mahi ahuwhenua katoa e 20 milliseconds.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

He nui enei 20 milliseconds. Mena he 100 nga tono penei, ka pau koe i te wa mo ia hekona ki te panuku i enei tono, ara kei te moumou taima.

Kaore matou e pai ki te mahi i tenei me te titiro ki nga mea e tukuna ana e te turanga mo tenei. E rua nga whiringa ka tukuna e te papaunga raraunga mo te whakahaere patai.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ko te whiringa tuatahi he tono ngawari. He aha te pai mo tena? Ko te meka ka tangohia e matou ka tukuna, kaore he mea ke atu.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

https://github.com/pgjdbc/pgjdbc/pull/478

He uinga matatau ano te papaunga raraunga, he uaua ake, engari he pai ake te mahi. Ka taea e koe te tuku motuhake he tono mo te poroporoaki, te mahi, te here taurangi, aha atu.

Ko te patai tino roa he mea kare e korerohia e matou i roto i te ripoata o naianei. Kei te pirangi pea matou i tetahi mea mai i te paataka korero, a, he rarangi hiahia kua oti te hanga i etahi ahua, ara, koinei ta matou e hiahia ana, engari kare e taea inaianei me te tau e haere ake nei. Na ka tuhi noa matou ka huri haere matou ki te wiri i nga tangata matua.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ko te mea ka taea e matou he patai ngawari me te patai roa.

He aha te mea motuhake mo ia huarahi?

He pai te patai ngawari mo te mahi kotahi. Ka oti ka wareware. A ko te raruraru ko te kore e tautoko i te whakatakotoranga raraunga rua, ara, kaore e pai mo etahi punaha mahi nui.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Uiui roa – ka taea e koe te penapena wa mo te poroporoaki. Koinei te mea i mahia e matou ka timata te whakamahi. I tino awhina tenei i a matou. Ehara i te mea he penapena noa mo te poroporoaki. He penapena mo te whakawhiti raraunga. He pai ake te whakawhiti raraunga ki te whakatakotoranga rua.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Me haere tatou ki te parakatihi. Koinei te ahua o te tono angamaheni. Ko Java pea, etc.

I hanga korero matou. I mahia te whakahau. I hanga tata. Kei hea te he i konei? He aha te raruraru? Kaore he raruraru. Koinei te korero i roto i nga pukapuka katoa. Me penei te tuhi. Mena kei te pirangi koe ki te tino mahi, tuhia penei.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Engari kua whakaatuhia e nga mahi kaore tenei e whai hua. He aha? No te mea he tikanga "tata" ta tatou. A, ka mahia e matou tenei, mai i te tirohanga o te papaarangi ka puta he rite ki te kaipaipa e mahi ana me te papaarangi. I kii matou "PARSE EXECUTE DEALLOCATE".

He aha enei mea hanga katoa me te wetewete i nga korero? Kaore he tangata e hiahia ana ki a raatau. Engari ko te mea ka puta i PreparedStatements ko te wa ka kati tatou, ka kati nga mea katoa i runga i te paataka raraunga. Ehara tenei i ta matou e hiahia ana.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

E hiahia ana matou, penei i nga tangata hauora, ki te mahi me te turanga. Kotahi tonu ta matou tango me te whakarite i ta matou korero, katahi ka mahia e matou he maha nga wa. Inaa, he maha nga wa - he kotahi tenei i roto i te oranga katoa o nga tono - kua pahemohia. A ka whakamahia e matou te taua korero id mo nga REST rereke. Ko ta matou whainga tenei.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Me pehea e tutuki ai tenei?

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

He tino ngawari - kaore e tika kia kati nga korero. Ka tuhia e matou penei: "whakarite" "whakahaere".

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Mena ka whakarewahia e tatou tetahi mea penei, katahi ka marama ka puhake tetahi mea ki tetahi waahi. Mena kaore i te marama, ka taea e koe te whakamatau. Me tuhi he tohu tohu e whakamahi ana i tenei tikanga ngawari. Waihangahia he korero. Ka whakarewahia e matou i runga i etahi putanga o te taraiwa, ka kitea he tere te tukinga me te ngaro o nga mahara katoa kei a ia.

E marama ana he ngawari te whakatika i aua hapa. E kore ahau e korero mo ratou. Engari ka kii ahau he tere ake te mahi o te putanga hou. He poauau te tikanga, engari tonu.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Me pehea te mahi tika? Me aha tatou mo tenei?

I roto i te meka, ka kati tonu nga tono i nga korero. I roto i nga pukapuka katoa e kii ana ratou kia kati, ki te kore ka pakaru te mahara.

A kaore a PostgreSQL e mohio ki te keteroki patai. Me hanga e ia wahanga tenei keteroki mo ia ano.

A kaore matou e pai ki te moumou taima ki te paahi.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ka rite ki o mua e rua nga whiringa.

Ko te kowhiringa tuatahi ko te tango me te kii me takai nga mea katoa ki te PgSQL. He keteroki kei reira. Ka huna e ia nga mea katoa. Ka puta te pai. I kite matou i tenei. 100500 nga tono kei a matou. Kaore e mahi. Kare matou e whakaae ki te huri i nga tono ki nga tikanga whakahaere. Kao kaore.

He whiringa tuarua ta maatau - tangohia ka tapahia ma tatou ano. Ka whakatuwherahia e matou nga puna ka timata ki te tapahi. I kite matou, i kite. I puta mai kaore he uaua ki te mahi.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

https://github.com/pgjdbc/pgjdbc/pull/319

I puta tenei i Akuhata 2015. Inaianei he putanga hou ake. A he rawe nga mea katoa. He pai te mahi kia kore matou e huri i tetahi mea i roto i te tono. Ka mutu ano ta matou whakaaro ki te huarahi o PgSQL, ara, he tino nui tenei mo matou ki te whakaheke i nga utu o runga ki te tata kore.

No reira, ka whakahohehia nga tauākī kua whakaritea e te Tūmau i te 5th execution kia kore ai e moumou mahara i roto i te pātengi raraunga mo ia tono kotahi.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ka patai pea koe – kei hea nga nama? He aha ta koe e whiwhi? Na konei e kore ahau e hoatu tau, no te mea kei ia tono tona ake.

Ko o matou patai he rite ki te 20 mitamano hēkona i pau i a matou ki te tarai i nga patai OLTP. He 0,5 milliseconds mo te mahi, 20 milliseconds mo te parsing. Tono – 10 KiB o te tuhinga, 170 rarangi mahere. He tono OLTP tenei. Ka tonohia nga rarangi 1, 5, 10, i etahi wa ka nui ake.

Engari kaore matou i pai ki te moumou i te 20 milliseconds. I whakaitihia e matou ki te 0. He rawe nga mea katoa.

He aha e taea e koe te tango mai i konei? Mena kei a koe a Java, ka tango koe i te putanga hou o te taraiwa me te koa.

Mena he reo ke to korero, katahi ka whakaaro - me penei ano pea koe? Na te mea mai i te tirohanga o te reo whakamutunga, hei tauira, mena kei a koe te PL 8, kei a koe ranei te LibPQ, na kaore koe i te mohio kei te whakapau koe i te waa kaore i te mahi, i runga i te panui, a he mea tika kia tirohia. Me pehea? He kore utu nga mea katoa.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Engari he hapa me etahi ahuatanga. A ka korero tatou mo ratou inaianei. Ko te nuinga o nga korero mo te whaipara ahumahi, mo nga mea i kitea e matou, nga mea i kitea e matou.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ki te hanga hihiri te tono. Ka tupu. Ka whakapirihia e tetahi nga aho, ka puta he patai SQL.

He aha ia i kino ai? He kino na te mea i ia wa ka mutu he aho rereke.

A me panui ano te HashCode o tenei aho rereke. He tino mahi PTM tenei - ehara i te mea ngawari te rapu kupu tono roa i roto i te hash. Na reira, he ngawari te whakatau - kaua e whakaputa tono. Whakaorangia ki tetahi taurangi. A koa.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Raruraru muri. He mea nui nga momo raraunga. He ORM e kii ana kaore he aha te ahua o te NULL kei reira, me waiho he ahua. Ki te Int, ka kii tatou setInt. A, ki te NULL, me waiho tonu ko VARCHAR. He aha te rereketanga o te mutunga he aha te NULL? Ko te papaunga raraunga ake ka mohio ki nga mea katoa. A kaore tenei pikitia e mahi.

I roto i te mahi, karekau te paataka korero e aro. Mena i kii koe i te wa tuatahi he nama tenei, a i te wa tuarua i kii koe he VARCHAR, kaore e taea te whakamahi ano i nga korero kua whakaritea e te Tūmau. A, i tenei keehi, me hanga ano ta tatou korero.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Mena kei te whakahaere koe i taua patai, me mohio kei te rangirua nga momo raraunga kei to poupou. Me mataara koe mo NULL. He hapa noa tenei i a matou i muri i te tiimata ki te whakamahi PreparedStatements

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ka pai, kua whakakā. I mauria pea e ratou te kaitaraiwa. Na ka heke te hua. I kino nga mea.

Me pehea e tupu ai? He bug, he ahuatanga ranei tenei? Kia aroha mai, kaore i taea te mohio he bug, he ahuatanga ranei tenei. Engari he ahuatanga tino ngawari mo te whakaputa i tenei raru. I tino whakapaea e ia i a matou. A ko te tauira mai i te teepu kotahi. Ko te tikanga, he maha atu nga tono penei i a maatau. Ko te tikanga, e rua, e toru nga teepu i whakauruhia, engari he ahuatanga purei ano. Tangohia tetahi putanga mai i to papaunga raraunga ka purei.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

https://gist.github.com/vlsi/df08cbef370b2e86a5c1

Ko te mea nui e rua a matou pou, kua taurangihia ia waahanga. He miriona nga rarangi kei roto i te pou NULL kotahi. A ko te pou tuarua e 20 noa nga rarangi. Ka mahia e matou kaore he taurangi here, ka pai nga mea katoa.

Mena ka timata tatou ki te mahi me nga taurangi herea, ara ka mahia e tatou te "?" "$1" ranei mo ta tatou tono, he aha te mutunga ka riro mai?

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

https://gist.github.com/vlsi/df08cbef370b2e86a5c1

Ko te mahi tuatahi ka rite ki te tumanako. Ko te tuarua he tere ake. I keteroki tetahi mea. Tuatoru, tuawha, tuarima. Katahi ka pupuhi - me tetahi mea pera. Ko te mea kino rawa atu ko tenei ka tupu i te ono o nga whiunga. Ko wai i mohio e tika ana kia ono nga mahi whakamate kia mohio ai koe he aha te tino mahere mahi?

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ko wai te hara? He aha te mea i tupu? Kei te pātengi raraunga te arotautanga. A ko te ahua kua arotauhia mo te keehi whanui. A, no reira, ka timata i tetahi wa, ka huri ia ki tetahi mahere whanui, engari, karekau he rereke. Ka puta he rite tonu, he rereke ranei. A tera ano etahi momo uara paepae e arai ana ki tenei whanonga.

He aha ta koe e mahi ai? I konei, o te akoranga, he uaua ake ki te mau i tetahi mea. He otinga ngawari ka whakamahia e matou. Ko te +0 tenei, OFFSET 0. He pono kei te mohio koe ki enei otinga. Ka tangohia noa e matou ka taapiri "+0" ki te tono ka pai nga mea katoa. Ka whakaatu ahau ki a koe i muri mai.

A tera ano tetahi atu whiringa - kia ata titiro ki nga mahere. Ko te kaiwhakawhanake me tuhi tono anake, engari me kii ano "whakamaramahia te tātari" kia 6 nga wa. Mena he 5, kaore e mahi.

A he whiringa tuatoru - tuhia he reta ki nga pgsql-hackers. I tuhituhi ahau, heoi, kare ano i te maarama he pepeha tenei, he ahuatanga ranei.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

https://gist.github.com/vlsi/df08cbef370b2e86a5c1

I a maatau e whakaaro ana he pepeha, he ahuatanga ranei tenei, me whakatika. Me tango ta tatou tono me te taapiri "+0". He pai nga mea katoa. E rua nga tohu kaore koe e whai whakaaro mo te pehea, he aha ranei. Tino ngawari. I aukati noa matou i te paatengi raraunga ki te whakamahi i te taurangi i runga i tenei pou. Karekau he taurangi i runga i te pourangi "+0" ka mutu, kaore te papaaarangi e whakamahi ana i te taurangi, he pai nga mea katoa.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ko te ture tenei o te 6 whakamaramatia. Inaianei i roto i nga putanga o naianei me mahi e koe kia 6 nga wa mena kua herea e koe nga taurangi. Mena karekau he taurangi here, koinei ta matou mahi. A, i te mutunga ko tenei tono ka taka. Ehara i te mea uaua.

Te ahua nei, e hia nga mea ka taea? He pepeke i konei, he pepeke kei kona. Inaa, kei nga waahi katoa te bug.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Kia ata titiro tatou. Hei tauira, e rua a matou kaupapa. Kaupapa A me te ripanga S me te hoahoa B me te ripanga S. Uiui – tīpako raraunga mai i te ripanga. He aha ta tatou mo tenei keehi? Ka he tatou. Ka whiwhi tatou i nga mea katoa o runga ake nei. Ko te ture - kei nga waahi katoa he pepeha, kei a tatou nga mea katoa o runga ake nei.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Inaianei ko te patai: "He aha?" Te ahua nei he tuhinga kei a maatau te kaupapa, katahi ano he taurangi "search_path" e whakaatu ana ki a maatau te waahi rapu mo te ripanga. Te ahua nei he taurangi.

He aha te raruraru? Ko te raru ko nga korero kua whakaritea e te tūmau karekau e whakapae ka taea e te tangata te huri i te ara_search. Ka noho tonu tenei uara, penei, mo te paataka raraunga. A ko etahi o nga waahanga kaore pea e tango i nga tikanga hou.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ko te tikanga, ka whakawhirinaki tenei ki te putanga e whakamatautauhia ana e koe. Kei runga i te tino rerekee o o ripanga. A ko te putanga 9.1 ka mahia noa nga patai tawhito. Ka mau pea nga putanga hou i te pepeha me te korero ki a koe kei a koe he pepeke.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Tautuhia te ara rapu + nga korero kua whakaritea e te tūmau =
Ko te mahere keteroki kaua e whakarereke i te momo hua

Me pehea te rongoa? He tohutaka ngawari - kaua e mahia. Karekau he take ki te huri i te rapu_ara i te wa e rere ana te tono. Mena ka huri koe, he pai ake te hanga hononga hou.

Ka taea e koe te korerorero, ara, tuwhera, korero, taapiri. Tena pea ka taea e tatou te whakapumau i nga kaiwhakawhanake putunga korero mena ka huri te tangata i tetahi uara, me korero te paataka korero ki te kaihoko mo tenei: "Nana, kua whakahoutia to uara ki konei. Tena pea me tautuhi ano koe i nga korero me te hanga ano?" Inaianei kei te noho puku te putunga korero me te kore e whakaatu i nga ahuatanga kua rereke nga korero i tetahi waahi o roto.

A ka whakanui ano ahau - he mea ehara tenei i te ahua mo Java. Ka kite tatou i te mea ano i roto i te PL/pgSQL kotahi ki tetahi. Engari ka whakaputahia ki reira.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Kia tamata tatou i etahi atu whiringa raraunga. Ka whiriwhiri tatou ka whiriwhiri. He tepu ta matou me te miriona rarangi. He kiropaita ia raina. Tata ki te gigabyte o nga raraunga. Na kei a matou he mahara mahi i roto i te miihini Java o 128 megabytes.

Ko matou, pera i te mea e taunakihia ana i roto i nga pukapuka katoa, ka whakamahi i te tukatuka awa. Arā, ka whakatuwherahia te huaSet ka panuihia nga raraunga mai i reira iti. Ka whai hua? Ka taka mai i te mahara? Ka panui koe i te iti? Kia whirinaki tatou ki te paataka raraunga, kia whakawhirinaki ki Postgres. Kare matou e whakapono ana. Ka hinga tatou i OutOFMemory? Ko wai i kite i OutOfMemory? Na wai i whakatika i muri i tera? I taea e tetahi te whakatika.

Mena he miriona rarangi koe, kaore e taea e koe te kowhiri me te kowhiri. OFFSET/LIMIT e hiahiatia ana. Ko wai mo tenei whiringa? A ko wai kei te pai ki te takaro me te AutoCommit?

I konei, pera i nga wa o mua, ko te whiringa tino ohorere ka puta he tika. A, ki te whakaweto ohorere koe i te AutoCommit, ka awhina. He aha tera? Karekau te Pūtaiao e mohio ki tenei.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Engari ma te taunoa, ko nga kaihoko katoa e hono ana ki te paataka raraunga a Postgres te tiki i nga raraunga katoa. Ko te PgJDBC he mea rereke mo tenei ahuatanga; ka tohua e ia nga rarangi katoa.

He rereketanga kei runga i te kaupapa FetchSize, ara, ka taea e koe te kii i te taumata o te korero motuhake kei konei, tohua nga raraunga ma te 10, 50. Engari kaore tenei e mahi kia whakawetohia e koe te autoCommit. Kua whakawetohia te AutoCommit - ka timata te mahi.

Engari ko te haere i roto i te waehere me te tautuhi i te setFetchSize i nga waahi katoa kaore e pai. Na reira, i hanga e matou he tautuhinga e kii ana te uara taunoa mo te hononga katoa.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Koia ta matou korero. Kua whirihorahia te tawhā. A he aha ta tatou i whiwhi? Ki te whiriwhiri tatou i nga moni iti, ki te mea, hei tauira, ka tohua e tatou nga rarangi 10 i te wa kotahi, he nui rawa nga utu o runga. No reira, me whakarite tenei uara ki te kotahi rau pea.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ko te tikanga, me ako tonu koe me pehea te whakawhāiti i roto i nga paita, engari ko te tohutaka tenei: tautuhia te taunoaRowFetchSize ki neke atu i te kotahi rau ka koa.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Me neke atu ki te whakauru raraunga. He ngawari ake te whakauru, he rereke nga whiringa. Hei tauira, INSERT, VALUES. He whiringa pai tenei. Ka taea e koe te kii "KOKOHI WHAKAMAHI". I roto i te mahi ko te mea ano. Kaore he rereketanga o te mahi.

E kii ana nga pukapuka me mahi koe i tetahi tauākī Pupuu, e kii ana nga pukapuka ka taea e koe te whakahaere i nga whakahau uaua ake me te maha o nga reu. A he mea whakamiharo a Postgres - ka taea e koe te KOPY, ara kia tere ake.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ki te ine koe, ka taea ano e koe etahi kitenga whakamere. Me pehea tatou e hiahia ana kia mahi tenei? E hiahia ana matou kia kaua e poroporoaki me te kore e mahia nga whakahau koretake.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

I roto i te mahi, kare a TCP e whakaae kia mahia tenei. Mena kei te pukumahi te kaihoko ki te tuku tono, karekau te paataka korero e panui i nga tono i te ngana ki te tuku whakautu ki a matou. Ko te mutunga ko te tatari te kaihoko mo te paanui ki te panui i te tono, ka tatari te paataka korero mo te kaihoko ki te panui i te whakautu.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Na reira ka akiakihia te kaihoko ki te tuku i ia wa i tetahi kete tukutahi. Ko nga taunekeneke whatunga taapiri, he moumou taima.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir SitnikovA, ka nui ake te taapiri atu, ka nui haere te kino. He tino pohewa te taraiwa me te taapiri i a raatau i nga wa maha, kotahi pea i ia 200 raina, i runga i te rahi o nga raina, aha atu.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

https://github.com/pgjdbc/pgjdbc/pull/380

Ko te mea ka whakatika noa koe i tetahi raina ka tere nga mea katoa 10 nga wa. Ka tupu. He aha? Pērā i mua, kua whakamahia kētia te pūmau pēnei i tētahi wāhi. A ko te uara "128" ko te tikanga kia kaua e whakamahia te puranga.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Java microbenchmark harness

He pai ki te kore tenei i whakauruhia ki te putanga mana. I kitea i mua i te tiimata o te tuku. Ko nga tikanga katoa e hoatu ana e au i runga i nga putanga hou.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Kia tamata tatou. Ka ine maatau i te InsertBatch ngawari. Ka inehia e matou te InsertBatch i nga wa maha, ara ko te mea ano, engari he maha nga uara. Te nekehanga hianga. Kaore e taea e nga tangata katoa te mahi, engari he mahi ngawari, he maamaa ake i te COPY.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ka taea e koe te KAUPAPA.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

A ka taea e koe te mahi i runga i nga hanganga. Whakapuakihia te momo taunoa Kaiwhakamahi, tukuna te huānga me te INSERT tika ki te ripanga.

Mena ka whakatuwherahia e koe te hono: pgjdbc/ubenchmsrk/InsertBatch.java, kei te GitHub tenei waehere. Ka taea e koe te kite he aha nga tono ka mahia ki reira. Kare he aha.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

I whakarewahia e matou. A ko te mea tuatahi i mohio matou ko te kore e whakamahi i te puranga kaore e taea. Ko nga whiringa kohinga katoa he kore, ara, he kore noa te wa mahi ka whakaritea ki te mahi kotahi.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Ka whakauruhia e matou nga raraunga. He tepu tino ngawari. E toru nga pou. A he aha ta tatou e kite nei i konei? Ka kite matou he rite te ahua o enei whiringa e toru. A ko te COPY, he pai ake.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

Koinei te wa ka whakauruhia e matou etahi waahanga. I a matou i kii kotahi te uara VALUES, e rua nga uara VALUES, e toru nga uara VALUES, i tohu ranei 10 o aua uara kua wehea e te piko. He whakapae noa tenei inaianei. 1, 2, 4, 128. Ka kitea ko te Whakauru Putunga, he mea tuhi ki te kahurangi, ka tino pai ake tona ngakau. Arā, ka kōkuhu koe kotahi i te wā, ahakoa ka kōkuhu koe e whā i te wā kotahi, ka rua ake te pai ake, na te mea i kuhuna ake e matou ki roto i te WARAU. He iti ake nga mahi WHAKAMAHI.

Ko te whakamahi i te COPY i runga i nga pukapuka iti he tino kino. Kaore au i tuhi i nga mea tuatahi e rua. Ka haere ki te rangi, ara, enei nama kaakaariki mo te KAUPAPA.

Me whakamahi COPY ina he rau haupae raraunga kei a koe. He nui te utu mo te whakatuwhera i tenei hononga. A, ki te pono, kaore au i keri i tenei huarahi. I arotauhia e ahau te Putunga, engari kaua ko TĀRI.

Ka aha tatou i muri mai? I whakamatauria e matou. Kei te mohio tatou me whakamahi i nga hanganga, i te bacth mohio ranei e whakakotahi ana i nga tikanga maha.

Ko te PostgreSQL me te JDBC ka pehia te wai katoa. Vladimir Sitnikov

He aha me tango e koe mai i te purongo o tenei ra?

  • Ko te PreparedStatement te mea katoa. He nui tenei mo te hua. Ka puta he pakaru nui i roto i te hinu.
  • A me mahi e koe te WHAKAMAHI WHAKAMAHI kia 6 nga wa.
  • A me waimeha OFFSET 0, me nga tinihanga penei i te +0 hei whakatika i te toenga o te paheketanga o a tatou patai raru.

Source: will.com

Tāpiri i te kōrero