Ho joang
Lebitso la ka ke Vanya 'me ke moqapi oa Java. Hoa etsahala hore ke sebetse haholo le PostgreSQL - ho theha database, ho ntlafatsa sebopeho, ts'ebetso, le ho bapala DBA e nyane mafelong a beke.
Haufinyane tjena ke hlophisitse li-database tse 'maloa ho li-microservices tsa rona mme ke ngotse laeborari ea java
ikgololo
Mofuta oa mantlha oa PostgreSQL eo ke sebetsang le eona ke 10. Lipotso tsohle tsa SQL tseo ke li sebelisang li boetse li lekoa ho mofuta oa 11. Mofuta o fokolang o tšehetsoeng ke 9.6.
prehistory
Tsohle li qalile hoo e ka bang selemo se fetileng ka boemo bo neng bo sa tloaeleha ho 'na: pōpo ea tlhōlisano ea index e tsoa boputsoa e felile ka phoso. Lenane ka bolona, joalo ka tloaelo, le ile la lula sebakeng sa polokelo sebakeng se sa sebetseng. Ho hlahlojoa ha lifate ho bontšitse khaello
Bothata ba pele - tlhophiso ea kamehla
Mohlomong motho e mong le e mong o khathetse haholo ke papiso e mabapi le Postgres, e ka tsamaisoang ho moetsi oa kofi, empa ... ho hlophisoa ha kamehla ho hlahisa lipotso tse 'maloa. Bonyane, ke habohlokoa ho ela hloko tlhokomelo_sebetsi_mem, temp_file_limit, statement_timeout и lock_timeout.
Tabeng ea rona tlhokomelo_sebetsi_mem e ne e le ea kamehla 64 MB, le temp_file_limit ntho e ka bang 2 GB - re ne re se na mohopolo o lekaneng oa ho etsa index tafoleng e kholo.
Ka hona, ho pg-index-bophelo Ke bokelletse letoto
Bothata ba bobeli - li-index tse peli
Li-database tsa rona li phela ho li-drive tsa SSD, 'me rea li sebelisa HA-tlhophiso e nang le litsi tse ngata tsa data, master host le n- palo ea likopi. Sebaka sa disk ke sesebelisoa sa bohlokoa haholo ho rona; ha e bohlokoa ho feta ts'ebetso le ts'ebeliso ea CPU. Ka hona, ka lehlakoreng le leng, re hloka li-index bakeng sa ho bala ka potlako, 'me ka lehlakoreng le leng, ha re batle ho bona li-index tse sa hlokahaleng ka har'a database, kaha li ja sebaka le ho liehisa ntlafatso ea data.
'Me joale, ka ho tsosolosa tsohle
Bothata ba boraro - intersecting indices
Bahlahisi ba bangata ba qalang ba etsa li-index kholomong e le 'ngoe. Butle-butle, ha ba se ba ithutile khoebo ena ka botlalo, batho ba qala ho ntlafatsa lipotso tsa bona le ho eketsa li-index tse rarahaneng tse kenyelletsang likholomo tse 'maloa. Ena ke tsela eo li-index tsa likholomo li hlahang A, A + B, A + B + C. joalo joalo. Li-indices tse peli tsa pele li ka lahleloa ka ntle ka mokhoa o sireletsehileng, kaha ke li-prefixes tsa boraro. Sena se boetse se boloka sebaka se ngata sa disk mme ho na le litlhahlobo tsa sena
Bothata ba bone - linotlolo tsa kantle ho naha ntle le li-index
Postgres e u lumella ho theha lithibelo tsa linotlolo tsa kantle ho naha ntle le ho hlakisa index ea tšehetso. Maemong a mangata sena ha se bothata, mme mohlomong ha se sa iponahatsa ... Hajoale ...
Ho ne ho tšoana le ho rona: ke feela hore ka nako e itseng mosebetsi, o sebetsang ho ea ka kemiso le ho hlakola database ea litaelo tsa liteko, o ile oa qala ho "eketsoa" ho rona ke mong'a ntlo. CPU le IO li ile tsa senyeha, likopo li ile tsa fokotseha 'me tsa felloa ke nako, tšebeletso e ne e le makholo a mahlano. Tlhahlobo e potlakileng
delete from <table> where id in (…)
Tabeng ena, ho hlakile hore ho ne ho e-na le index ka id tafoleng ea sepheo, 'me litlaleho tse fokolang haholo li ile tsa hlakoloa ho ea ka boemo. Ho ne ho bonahala eka ntho e 'ngoe le e' ngoe e lokela ho sebetsa, empa, bomalimabe, ha ea ka ea sebetsa.
Ea babatsehang o ile a tla ho thusa hlalosa sekaseka mme a re, ntle le ho hlakolwa ha ditlaleho letlapeng leo ho shebilweng ho lona, ho boetse ho na le phuputso ya botshepehi, mme ho e nngwe ya ditafole tse amanang cheke ena e hloleha. sequential scan ka lebaka la tlhokeho ya index e loketseng. Kahoo ho ile ha tsoaloa tlhahlobo ea mafu
Bothata ba bohlano - boleng ba lefeela ho li-index
Ka mokhoa o ikhethileng, Postgres e kenyelletsa boleng ba lefeela ho li-index tsa btree, empa hangata ha li hlokehe moo. Ka hona, ke leka ka matla ho lahla li-nulls tsena (diagnostics where <A> is not null
. Ka tsela ena ke khonne ho fokotsa boholo ba e 'ngoe ea li-index tsa rona ho tloha ho 1877 MB ho ea ho 16 KB. 'Me ho e' ngoe ea lits'ebeletso, boholo ba database bo theohile ka kakaretso ea 16% (ka 4.3 GB ka linomoro tse feletseng) ka lebaka la ho qheleloa ha boleng ba lefeela ho li-index. Ho boloka chelete e ngata sebakeng sa disk ka liphetoho tse bonolo haholo. 🙂
Bothata ba botšelela - ho hloka linotlolo tsa mantlha
Ka lebaka la sebopeho sa mochine
Ka letsatsi le leng, phalliso e le 'ngoe e makatsang e ile ea nka le ho nchafatsa lirekoto tsohle tafoleng e kholo e sebelisoang ka mafolofolo. Re fumane +100 GB ho boholo ba tafole ntle le boputsoa. E ne e le ntho e hlabisang lihlong haholo, empa mathata a rona ha aa ka a fella moo. Kamora hore autovacuum e tafoleng ena e felile lihora tsa 15 hamorao, ho ile ha hlaka hore sebaka sa 'mele se ke ke sa khutla. Ha rea khona ho emisa ts'ebeletso le ho etsa VACUUM FULL, kahoo re nkile qeto ea ho e sebelisa
Khatisong ea laebrari 0.1.5 Bokhoni ba ho bokella data ho tsoa ho bloat ea litafole le li-index le ho arabela ho eona ka nako e nepahetseng e kentsoe.
Mathata a supileng le a robeli - li-index tse sa lekaneng le li-index tse sa sebelisoang
Litlhahlobo tse peli tse latelang ke:
Joalokaha ke se ke ngotse, re sebelisa tlhophiso e nang le likopi tse 'maloa,' me mojaro oa ho bala ho mabotho a fapaneng a fapane haholo. Ka lebaka leo, boemo bo bontša hore litafole le li-index tse ling ho batho ba bang ha li sebelisoe, 'me bakeng sa tlhahlobo u hloka ho bokella lipalo-palo ho tsoa ho bohle ba amohelang lihlopha.
Mokhoa ona o ile oa re lumella ho boloka li-gigabyte tse mashome a 'maloa ka ho tlosa li-index tseo ho seng mohla li kileng tsa sebelisoa, hammoho le ho eketsa li-index tse sieo ho litafole tse sebelisoang seoelo.
E le sephetho
Ehlile, bakeng sa hoo e ka bang diagnostics tsohle u ka configure
Litlhahlobo tse ling li ka etsoa litekong tsa ts'ebetso hang ka mor'a ho tsamaisa lits'oants'o tsa database. 'Me mohlomong ena ke e' ngoe ea likarolo tse matla ka ho fetisisa laebraring ea ka. Mohlala oa tšebeliso o ka fumanoa ho
Hoa utloahala ho etsa licheke bakeng sa li-index tse sa sebelisoeng kapa tse sieo, hammoho le bloat, feela polokelong ea 'nete. Litefiso tse bokelletsoeng li ka ngolisoa ho
Ke tshepa hoo ruri pg-index-bophelo e tla ba molemo ebile e batloa. U ka kenya letsoho ntlafatsong ea laeborari ka ho tlaleha mathata ao u a fumanang le ho fana ka maikutlo a tlhahlobo e ncha.
Source: www.habr.com