Ke fana ka tlhahiso ea hore u bale sengoloa sa tlaleho ea Vladimir Sitnikov ea pele ea 2016 "PostgreSQL le JDBC li pepeta lero lohle"
Lumelang Lebitso la ka ke Vladimir Sitnikov. Ke qetile lilemo tse 10 ke sebeletsa NetCracker. 'Me hangata ke kena tlhahiso. Ntho e 'ngoe le e' ngoe e amanang le Java, ntho e 'ngoe le e' ngoe e amanang le SQL ke seo ke se ratang.
'Me kajeno ke tla bua ka seo re kopaneng le sona k'hamphaning ha re qala ho sebelisa PostgreSQL joalo ka seva sa database. 'Me hangata re sebetsa le Java. Empa seo ke tla u bolella sona kajeno ha se feela ka Java. Joalokaha tloaelo e bontšitse, sena se etsahala le lipuong tse ling.
Re tla bua:
- mabapi le sampole ya data.
- Mabapi le ho boloka data.
- Hape le mabapi le tshebetso.
- Le ka liraka tse ka tlas'a metsi tse patiloeng moo.
A re qaleng ka potso e bonolo. Re khetha mola o le mong ho tloha tafoleng ho latela senotlolo sa mantlha.
Database e fumaneha ho moamoheli a le mong. Mme temo ena kaofela e nka 20 milliseconds.
Li-milliseconds tsena tse 20 li ngata. Haeba u na le likopo tse joalo tse 100, joale u qeta nako ka motsotsoana u ntse u bala likopo tsena, ke hore, re senya nako.
Ha re rate ho etsa sena mme re shebe hore na motheo o re fa eng bakeng sa sena. Database e re fa likhetho tse peli tsa ho botsa lipotso.
Khetho ea pele ke kopo e bonolo. Ke eng e ntle ka eona? Taba ea hore rea e nka ebe rea e romela, eseng letho hape.
Database e boetse e na le potso e tsoetseng pele, e qhekellang, empa e sebetsa haholoanyane. U ka romella ka thoko kopo ea ho arola, ho e sebelisa, ho tlama ka mokhoa o fapaneng, joalo-joalo.
Potso e atolositsoeng haholo ke ntho eo re ke keng ra e bua tlalehong ea hajoale. Re, mohlomong, re batla ho hong ho tswa ho database mme ho na le lethathamo la litakatso le entsoeng ka mokhoa o itseng, ke hore sena ke seo re se batlang, empa ha se khonehe hona joale le selemong se latelang. Kahoo re sa tsoa e rekota mme re tla potoloha re sisinya batho ba ka sehloohong.
Mme seo re ka se etsang ke potso e bonolo le potso e atolositsoeng.
Ke eng e ikhethang ka mokhoa o mong le o mong?
Potso e bonolo e loketse ho etsoa hang feela. Hang ha e etsoa mme e lebetsoe. 'Me bothata ke hore ha e tšehetse mokhoa oa boitsebiso ba binary, ke hore ha o tšoanelehe bakeng sa mekhoa e meng e phahameng ea ts'ebetso.
Potso e atolositsoeng - e u lumella ho boloka nako ha u bala. Sena ke seo re se entseng mme ra qala ho se sebelisa. Ruri sena se ile sa re thusa. Ha ho bolokehe feela ha ho arola. Ho na le lipolokelo ho phetiso ea data. Ho fetisetsa data ka sebopeho sa binary ho sebetsa hantle haholo.
Ha re tsoeleng pele ho itloaetsa. Sena ke seo sesebelisoa se tloaelehileng se shebahalang ka sona. E ka ba Java, joalo-joalo.
Re entse polelo. Phetha taelo. E entsoe haufi. Phoso e kae moo? Bothata ke bofe? Ha ho bothata. Sena ke seo e se buang libukeng tsohle. Ke kamoo e lokelang ho ngoloa kateng. Haeba u batla tshebetso e phahameng ka ho fetisisa, ngola tjena.
Empa tloaelo e bontšitse hore sena ha se sebetse. Hobaneng? Hobane re na le mokhoa oa "haufi". 'Me ha re etsa sena, ho ea ka pono ea database ho bonahala eka ho tšoana le motho ea tsubang ea sebetsang le database. Re itse "PARSE EXECUTE DEALLOCATE".
Ke hobane'ng ha pōpo ee e eketsehileng le ho laolla lipolelo? Ha ho motho ea li hlokang. Empa se atisang ho etsahala ho PreparedStatements ke hore ha re li koala, li koala ntho e 'ngoe le e' ngoe ho database. Sena ha se seo re se batlang.
Re batla, joalo ka batho ba phetseng hantle, ho sebetsa le setsi. Re nkile le ho lokisa polelo ea rona hang, ebe re e phetha hangata. Ebile, hangata - sena ke hang bophelong bohle ba lits'ebetso - li fetisitsoe. 'Me re sebelisa id ea polelo e tšoanang ho REST e fapaneng. Sena ke sepheo sa rona.
Re ka finyella see joang?
Ho bonolo haholo - ha ho hlokahale ho koala lipolelo. Re e ngola tjena: "lokisa" "phetha".
Haeba re qala ntho e kang ena, joale ho hlakile hore ho na le ntho e tla phalla kae-kae. Haeba e sa hlaka, u ka e leka. Ha re ngoleng palo e sebelisang mokhoa ona o bonolo. Etsa polelo. Re e tsebisa ka mofuta o mong oa mokhanni mme re fumana hore e soahlamana ka potlako ka tahlehelo ea memori eohle eo e neng e e-na le eona.
Ho hlakile hore liphoso tse joalo li lokisoa habonolo. Nke ke ka bua ka tsona. Empa ke tla re phetolelo e ncha e sebetsa ka potlako haholo. Mokhoa ona o hloka kelello, empa leha ho le joalo.
Mokhoa oa ho sebetsa hantle? Re lokela ho etsa eng bakeng sa see?
Ha e le hantle, likopo li lula li koala lipolelo. Libukeng tsohle ba re ho e koala, ho seng joalo mohopolo o tla lutla.
'Me PostgreSQL ha e tsebe ho etsa lipotso tsa cache. Hoa hlokahala hore seboka se seng le se seng se iketsetse cache ena.
'Me le rona ha re batle ho senya nako ka ho bala.
'Me joalo ka tloaelo re na le likhetho tse peli.
Khetho ea pele ke hore re e nke ebe re re ha re phuthele tsohle ho PgSQL. Ho na le cache moo. E boloka tsohle. Ho tla ba monate. Re bone sena. Re na le likopo tse 100500. Ha e sebetse. Ha re lumellane ho fetola likopo hore e be lits'ebetso ka letsoho. Che, che.
Re na le khetho ea bobeli - e nke 'me u itšehe ka borona. Re bula mehloli ebe re qala ho khaola. Re ile ra bona le ho bona. Ho ile ha fumaneha hore ha ho thata hakaalo ho e etsa.
Sena se hlahile ka Phato 2015. Hona joale ho na le phetolelo ea morao-rao. Mme tsohle di ntle. E sebetsa hantle hoo re sa fetoleng letho ts'ebelisong. Hape re ile ra emisa ho nahana ka tsela ea PgSQL, ke hore, sena se ne se lekane hore re ka fokotsa litšenyehelo tsohle ho ea ho zero.
Ka hona, lipolelo tse lokiselitsoeng ke Seva li kentsoe tšebetsong ea 5th e le ho qoba ho senya mohopolo sebakeng sa polokelo ea litaba ka kopo e 'ngoe le e' ngoe ea nako e le 'ngoe.
U ka botsa - linomoro li hokae? U fumana eng? 'Me mona nke ke ka fana ka linomoro, hobane kopo e' ngoe le e 'ngoe e na le ea eona.
Lipotso tsa rona li bile joalo hoo re sebelisitseng li-milliseconds tse ka bang 20 ho hlalosa lipotso tsa OLTP. Ho ne ho e-na le 0,5 milliseconds bakeng sa ho bolaoa, 20 milliseconds bakeng sa tlhaloso. Kopo - 10 KB ea mongolo, mela e 170 ea moralo. Ena ke kopo ea OLTP. E kopa 1, 5, 10 mela, ka linako tse ling ho feta.
Empa re ne re sa batle ho senya 20 milliseconds ho hang. Re e fokotsa ho 0. Tsohle di ntle.
U ka nka eng ho tloha moo? Haeba u na le Java, joale u nka mofuta oa sejoale-joale oa mokhanni 'me u thabe.
Haeba u bua puo e fapaneng, joale nahana - mohlomong le uena u hloka sena? Hobane ho ea ka pono ea puo ea ho qetela, ka mohlala, haeba PL 8 kapa u na le LibPQ, joale ha ho hlake ho uena hore u qeta nako e seng ho phethahatsoa, ho arola, 'me sena se lokela ho hlahlojoa. Joang? Tsohle di lokolohile.
Ntle le hore ho na le liphoso le peculiarities tse ling. 'Me re tla bua ka bona hona joale. Boholo ba eona e tla ba ka ho epolloa ha lintho tsa khale tsa indasteri, mabapi le seo re se fumaneng, seo re se fumaneng.
Haeba kopo e hlahisoa ka matla. Hoa etsahala. Motho e mong o kopanya likhoele hammoho, ho fella ka potso ea SQL.
Ke hobane'ng ha a le mobe? Ho hobe hobane nako le nako re qetella re e-na le khoele e fapaneng.
'Me hashCode ea khoele ena e fapaneng e hloka ho baloa hape. Ha e le hantle ona ke mosebetsi oa CPU - ho fumana mongolo o molelele oa kopo esita le hash e teng ha ho bonolo hakaalo. Ka hona, sephetho se bonolo - u se ke ua hlahisa likopo. Li boloke boemong bo le bong. Mme le thabe.
Bothata bo latelang. Mefuta ea data e bohlokoa. Ho na le li-ORM tse reng ha ho na taba hore na NULL ke ea mofuta ofe, ho ke ho be le mofuta o itseng. Haeba Int, joale re re setInt. 'Me haeba NULL, e ke e be VARCHAR kamehla. Hona ho etsa phapang efe qetellong hore na NULL ke eng? Database ka boeona e tla utloisisa ntho e 'ngoe le e' ngoe. 'Me setšoantšo sena ha se sebetse.
Ha e le hantle, database ha e tsotelle ho hang. Haeba u boletse lekhetlo la pele hore ena ke nomoro, 'me lekhetlo la bobeli u re ke VARCHAR, joale ho ke ke ha khoneha ho sebelisa lipolelo tse lokiselitsoeng ke Seva hape. 'Me tabeng ena, re tlameha ho tsosolosa polelo ea rona.
Haeba u etsa potso e tšoanang, etsa bonnete ba hore mefuta ea data e kholomong ea hau ha e ferekane. U tlameha ho ela hloko NULL. Ena ke phoso e tloaelehileng eo re bileng le eona kamora hore re qale ho sebelisa PreparedStatements
Ho lokile, butswe. Mohlomong ba nkile mokhanni. Mme tlhahiso e ile ya theoha. Lintho li ile tsa mpefala.
See se etsahala joang? Na ke bothata kapa ke tšobotsi? Ka bomalimabe, ho ne ho sa khonehe ho utloisisa hore na sena ke phoso kapa ke tšobotsi. Empa ho na le boemo bo bonolo haholo ba ho hlahisa bothata bona hape. O ile a re lalla re sa lebella. 'Me e na le sampling ka ho toba ho tloha tafoleng e le' ngoe. Ha e le hantle, re ne re e-na le likōpo tse ngata tse joalo. E le molao, ba ne ba kenyelletsa litafole tse peli kapa tse tharo, empa ho na le boemo bo joalo ba ho bapala. Nka mofuta ofe kapa ofe ho tsoa ho database ea hau 'me u e bapale.
Taba ke hore re na le litšiea tse peli, tseo e 'ngoe le e 'ngoe e nang le indexed. Ho na le mela e milione kholomong e le 'ngoe ea NULL. 'Me karolo ea bobeli e na le mela e 20 feela. Ha re etsa lintho tse sa tšoaneng, ntho e 'ngoe le e' ngoe e sebetsa hantle.
Haeba re qala ho phethahatsa ka mefuta e fapaneng, ke hore, re etsa "?" kapa "$1" bakeng sa kopo ea rona, re qetella re fumana eng?
Phethahatso ea pele e joalo ka ha ho lebelletsoe. Ea bobeli e potlakile hanyane. Ho na le ntho e bolokiloeng. Ea boraro, ea bone, ea bohlano. Ebe bang - le ntho e kang eo. 'Me ntho e mpe ka ho fetisisa ke hore sena se etsahala ka phethahatso ea botšelela. Ke mang ea neng a tseba hore ho ne ho hlokahala hore ho bolaoe batho ba tšeletseng e le hore ho ka utloisisoa hore na morero oa sebele oa polao ke ofe?
Ke mang ea molato? Ho etsahetse eng? Database e na le optimization. 'Me e bonahala e ntlafalitsoe bakeng sa kesi ea generic. 'Me, ka hona, ho qala ka nako e itseng, o fetohela ho moralo oa generic, oo, ka bomalimabe, o ka fetohang o fapaneng. E ka 'na ea bonahala e tšoana, kapa e ka ba e fapaneng. 'Me ho na le mofuta o mong oa boleng ba moeli o lebisang boitšoarong bona.
U ka etsa’ng ka eona? Ha e le hantle, mona ho thata ho nahana ka ntho leha e le efe. Ho na le tharollo e bonolo eo re e sebelisang. Sena ke +0, OFFSET 0. Ka sebele u tseba litharollo tse joalo. Re e nka feela ebe re eketsa "+0" ho kopo mme tsohle li lokile. Ke tla u bontša hamorao.
'Me ho na le khetho e' ngoe - sheba merero ka hloko haholoanyane. Moqapi ha aa lokela ho ngola kopo feela, empa hape o re "hlalosa sekaseka" makhetlo a 6. Haeba e le 5, e ke ke ea sebetsa.
'Me ho na le khetho ea boraro - ngolla pgsql-hackers lengolo. Ke ngotse, leha ho le joalo, ha e e-so hlake hore na ena ke phoso kapa ke tšobotsi.
Ha re ntse re nahana hore na ena ke bothata kapa ke tšobotsi, ha re e lokise. Ha re nke kopo ea rona mme re kenye "+0". Tsohle di lokile. Matšoao a mabeli 'me ha ho hlokahale hore u nahane ka hore na ke eng kapa hore na ke eng. E bonolo haholo. Re hanetse feela database ho sebelisa index kholomong ena. Ha re na index holim'a kholomo ea "+0" 'me ho joalo, database ha e sebelise index, ntho e' ngoe le e 'ngoe e hantle.
Ona ke molao oa 6 hlalosa. Hona joale liphetolelong tsa morao-rao u tlameha ho e etsa ka makhetlo a 6 haeba u na le mefuta-futa e tlamiloeng. Haeba ha u na lintho tse fapaneng tse tlamang, sena ke seo re se etsang. 'Me qetellong ke eona kopo ena e hlolehang. Ha se ntho e qhekellang.
Ho ka bonahala eka, ke bokae ho ka khonehang? Kotsi mona, kokoanyana mono. Haele hantle, bothata bo hohle.
A re hlahlobeng ka hloko. Ka mohlala, re na le li-schema tse peli. Leano la A le nang le tafole S le setšoantšo sa B se nang le tafole S. Potso – kgetha data ho tswa tafoleng. Re tla ba le eng tabeng ee? Re tla ba le phoso. Re tla ba le tsohle tse ka holimo. Molao ke - kokoanyana e hohle, re tla ba le tsohle tse ka holimo.
Joale potso ke: "Hobane'ng?" Ho ka bonahala eka ho na le litokomane tsa hore haeba re na le schema, joale ho na le "search_path" e fapaneng e re bolellang hore na re batle tafole hokae. Ho bonahala eka ho na le phapang.
Bothata ke bofe? Bothata ke hore lipolelo tse lokiselitsoeng seva ha li belaelle hore search_path e ka fetoloa ke motho e mong. Boleng bona bo sala, joalo ka ha ho le joalo, bo sa fetohe bakeng sa database. ’Me likarolo tse ling li ka ’na tsa se ke tsa fumana meelelo e mecha.
Ehlile, sena se ipapisitse le mofuta oo u lekang ho ona. Ho ipapisitse le hore na litafole tsa hau li fapana hakae. Mme mofuta oa 9.1 o tla phethahatsa likopo tsa khale feela. Liphetolelo tse ncha li ka tšoasa kokoanyana eo 'me tsa u bolella hore u na le bothata.
Joang ho e phekola? Ho na le recipe e bonolo - u se ke ua e etsa. Ha ho na lebaka la ho fetola search_path ha sesebelisoa se ntse se sebetsa. Haeba o fetoha, ho molemo ho theha khokahano e ncha.
U ka buisana, ke hore bula, buisana, eketsa. Mohlomong re ka kholisa baetsi ba polokelo ea boitsebiso hore ha motho e mong a fetola boleng, polokelo ea boitsebiso e lokela ho bolella moreki ka sena: “Bona, boleng ba hau bo ntlafalitsoe mona. Mohlomong u hloka ho hlophisa lipolelo hape ebe u li etsa bocha? Hona joale database e itšoara ka sekhukhu 'me ha e tlalehe ka tsela leha e le efe hore lipolelo li fetohile kae-kae ka hare.
'Me ke tla hatisa hape - sena ke ntho e sa tloaelehang bakeng sa Java. Re tla bona ntho e tšoanang ho PL/pgSQL ho isa ho e 'ngoe. Empa e tla hlahisoa hape moo.
Ha re leke khetho e 'ngoe ea data. Re khetha le ho khetha. Re na le tafole e nang le mela e milione. Mohala o mong le o mong ke kilobyte. Hoo e ka bang gigabyte ea data. Mme re na le memori e sebetsang mochining oa Java oa 128 megabytes.
Rona, joalo ka ha ho khothalelitsoe libukeng tsohle, re sebelisa ts'ebetso ea molapo. Ke hore, re bula resultSet ebe re bala lintlha tse tsoang moo hanyane ka hanyane. Na e tla sebetsa? Na e tla oela mohopolong? O tla bala hanyane? Ha re tšepeng database, a re tšepeng Postgres. Ha re e lumele. Na re tla oela OutOFMemory? Ke mang ea bileng le phihlelo ea OutOfMemory? Ke mang ea ileng a khona ho e lokisa ka mor'a moo? Ho na le motho ea ileng a khona ho e lokisa.
Haeba u na le mela e milione, u ke ke ua khetha feela. OFFSET/LIMIT ea hlokahala. Ke mang bakeng sa khetho ee? Mme ke mang ea ratang ho bapala le autoCommit?
Mona, joalo ka tloaelo, khetho e sa lebelloang ka ho fetesisa e fetoha e nepahetseng. 'Me haeba ka tšohanyetso u tima AutoCommit, ho tla thusa. Hobaneng ha ho le joalo? Mahlale ha a tsebe ka sena.
Empa ka ho sa feleng, bareki bohle ba hokelang polokelong ea polokelo ea Postgres ba lata data kaofela. PgJDBC ha se mokhelo tabeng ena; e khetha mela eohle.
Ho na le phapang holim'a sehlooho sa FetchSize, ke hore, u ka bua boemong ba polelo e fapaneng hore mona, ka kopo khetha data ka 10, 50. Empa sena ha se sebetse ho fihlela u tima autoCommit. E koetse AutoCommit - e qala ho sebetsa.
Empa ho sebelisa khoutu le ho beha setFetchSize hohle ha ho na tšitiso. Ka hona, re entse tlhophiso e tla bolela boleng ba kamehla bakeng sa khokahano eohle.
Ke seo re se buileng. Paramethara e hlophisitsoe. Mme re fumane eng? Haeba re khetha chelete e nyane, haeba, ka mohlala, re khetha mela e 10 ka nako, joale re na le litšenyehelo tse kholo haholo. Ka hona, boleng bona bo lokela ho behoa ho hoo e ka bang lekholo.
Haele hantle, ehlile, o ntse o tlameha ho ithuta ho e fokotsa ka li-byte, empa risepe ke ena: beha defaultRowFetchSize ho feta lekholo mme u thabe.
Ha re tsoeleng pele ho kenya data. Ho kenya ho bonolo, ho na le likhetho tse fapaneng. Mohlala, INSERT, VALUES. Ena ke khetho e ntle. U ka re "INSERT KHETHA". Ka ts'ebetso ke ntho e tšoanang. Ha ho phapang ts'ebetsong.
Libuka li re u hloka ho etsa polelo ea Batch, libuka li re u ka etsa litaelo tse rarahaneng ka li-parentheses tse 'maloa. 'Me Postgres e na le tšobotsi e ntle haholo - o ka etsa COPY, ke hore, e etse kapele.
Haeba u e lekanya, u ka boela ua etsa lintho tse ling tse thahasellisang. Re batla hore see se sebetse joang? Ha re batle ho hlalosa le ho se phethise litaelo tse sa hlokahaleng.
Ka ts'ebetso, TCP ha e re lumelle ho etsa sena. Haeba moreki a ntse a phathahane ka ho romella kopo, joale database ha e bale likopo ha a leka ho re romella likarabo. Sephetho ke hore moreki o emetse database ho bala kopo, mme database e emetse hore moreki a bale karabo.
'Me ka hona moreki o tlameha ho romella pakete ea khokahano nako le nako. Litšebelisano tse eketsehileng tsa marang-rang, tšenyo e eketsehileng ea nako.
Mme ha re ntse re di eketsa, di mpefala le ho feta. Mokhanni ha a na tšepo 'me o li eketsa hangata, hoo e ka bang hanngoe meleng e meng le e meng e 200, ho itšetlehile ka boholo ba mela, joalo-joalo.
Hoa etsahala hore u lokise mola o le mong feela 'me ntho e' ngoe le e 'ngoe e tla potlakisa makhetlo a 10. Hoa etsahala. Hobaneng? Joalo ka tloaelo, ntho e sa fetoheng e kang ena e se e sebelisitsoe kae-kae. 'Me boleng "128" bo ne bo bolela ho se sebelise batching.
Ho hotle hore ebe sena ha sea ka sa kenyelletsoa phetolelong ea molao. E fumanoe pele tokollo e qala. Litlhaloso tsohle tseo ke fanang ka tsona li thehiloe liphetolelong tsa morao-rao.
Ha re e leke. Re lekanya InsertBatch e bonolo. Re lekanya InsertBatch makhetlo a mangata, ke hore ntho e le 'ngoe, empa ho na le litekanyetso tse ngata. Motsamao o qhekellang. Ha se motho e mong le e mong ea ka etsang sena, empa ke ts'ebetso e bonolo joalo, e bonolo haholo ho feta COPY.
U ka etsa KOPI.
'Me u ka etsa sena ka mehaho. Declare User default type, pass array le INSERT ka kotloloho tafoleng.
Haeba u bula sehokelo: pgjdbc/ubenchmsrk/InsertBatch.java, joale khoutu ena e ho GitHub. U ka bona ka ho hlaka hore na ke likopo life tse hlahisoang moo. Ha ho na taba.
Re ile ra qala. 'Me ntho ea pele eo re e hlokometseng ke hore ho se sebelise batch ho ke ke ha khoneha. Likhetho tsohle tsa batching ke zero, ke hore, nako ea ts'ebetso e batla e le zero ha e bapisoa le ts'ebetso ea nako e le 'ngoe.
Re kenya data. Ke tafole e bonolo haholo. Litšiea tse tharo. Mme re bona eng moo? Rea bona hore likhetho tsena tse tharo kaofela li batla li bapisoa. 'Me COPY, ehlile, e betere.
Ke ha re kenya likotoana. Ha re re boleng bo le bong ba VALUES, tse peli tsa VALUES, tse tharo tsa VALUES, kapa re bonts'a tse 10 tsa tsona li arotsoe ke koma. Sena se mpa feela se tshekaletseng jwale. 1, 2, 4, 128. Ho ka bonoa hore Batch Insert, e entsoeng ka boputsoa, e etsa hore a ikutloe a le betere haholo. Ke hore ha u kenya e le ‘ngoe ka nako kapa leha u kenya tse ‘ne ka nako e le ‘ngoe, e fetoha e ntle habeli, hobane feela re ile ra petetsa hanyane ka har’a VALUES. Ts'ebetso e fokolang ea EXECUTE.
Ho sebelisa COPY meqolong e menyenyane ha ho tšepise haholo. Ha kea ka ka taka le ho tse peli tsa pele. Ba ea leholimong, ke hore, linomoro tsena tse tala bakeng sa COPY.
COPY e lokela ho sebelisoa ha bonyane u na le mela e lekholo ea data. Taba ea ho bula khokahano ena e kholo. 'Me, ho bua 'nete, ha kea ka ka cheka ntlheng ena. Ke ntlafalitse Batch, empa eseng COPY.
Re etsa’ng ka mor’a moo? Re ile ra e leka. Re utloisisa hore re hloka ho sebelisa libopeho kapa bacth e bohlale e kopanyang meelelo e mengata.
U lokela ho nka eng tlalehong ea kajeno?
- PreparedStatement ke tsohle tsa rona. Sena se fana ka haholo bakeng sa tlhahiso. E hlahisa flop e kholo ka har'a setlolo.
- 'Me u lokela ho etsa HLALOSA HLAHLOBA makhetlo a 6.
- 'Me re hloka ho hlapolla OFFSET 0, le maqheka a kang +0 ho lokisa liphesente tse setseng tsa lipotso tsa rona tse nang le mathata.
Source: www.habr.com