Að mínu mati, ólíkt fyrri útgáfum, inniheldur PostgreSQL 12 ekki einn eða tvo byltingarkennda eiginleika (eins og skipting eða samhliða fyrirspurn). Ég gerði einu sinni grín að því að aðaleinkenni PostgreSQL 12 væri meiri stöðugleiki. Er það ekki það sem þú þarft þegar þú stjórnar mikilvægum gögnum fyrirtækisins?
En PostgreSQL 12 hættir ekki þar: með nýjum eiginleikum og endurbótum munu forrit skila betri árangri, og allt sem þú þarft að gera er að uppfæra!
(Jæja, kannski endurreisa vísitölurnar, en í þessari útgáfu er það ekki eins skelfilegt og við erum vön.)
Það verður frábært að uppfæra PostgreSQL og njóta strax umtalsverðra umbóta án óþarfa vesen. Fyrir nokkrum árum síðan fór ég yfir uppfærslu frá PostgreSQL 9.4 í PostgreSQL 10 og sá hvernig forritið flýtti sér þökk sé bættri samhliða fyrirspurn í PostgreSQL 10. Og, síðast en ekki síst, var nánast ekkert krafist af mér (bara stilltu stillingarbreytu max_parallel_workers
).
Sammála, það er þægilegt þegar forrit virka betur strax eftir uppfærslu. Og við reynum mjög mikið að þóknast notendum, því PostgreSQL hefur fleiri og fleiri af þeim.
Svo hvernig getur einföld uppfærsla í PostgreSQL 12 gert þig hamingjusaman? Ég skal segja þér það núna.
Miklar endurbætur á verðtryggingu
Án flokkunar mun gagnagrunnur ekki ná langt. Hvernig er annars hægt að finna upplýsingar fljótt? Grundvallarvísitölukerfi PostgreSQL er kallað
Við notum einfaldlega rekstraraðilann CREATE INDEX ON some_table (some_column)
, og PostgreSQL gerir mikla vinnu til að halda vísitölunni uppfærðri á meðan við setjum stöðugt inn, uppfærum og eyðum gildum. Allt virkar af sjálfu sér, eins og fyrir töfra.
En PostgreSQL vísitölur hafa eitt vandamál - þær
PostgreSQL 12 bætir verulega afköst B-tré vísitölu og tilraunir með viðmið eins og TPC-C hafa sýnt að að meðaltali er 40% minna pláss notað núna. Nú eyðum við minni tíma ekki aðeins í að viðhalda B-tré vísitölum (þ.e. í ritaðgerðum), heldur einnig í að sækja gögn, vegna þess að vísitölurnar eru miklu minni.
Forrit sem uppfæra töflurnar sínar virkan - venjulega OLTP forrit (
Sumar uppfærsluaðferðir krefjast þess að endurbyggja B-tré vísitölur til að nýta þessa kosti (t.d.
Það eru aðrar endurbætur á flokkunarinnviði í PostgreSQL 12. Annað þar sem það var einhver galdur -
PostgreSQL 12 hefur dregið úr kostnaði við WAL færslur sem eru búnar til af GiST, GIN og SP-GiST vísitölunum við smíði vísitölunnar. Þetta veitir nokkra áþreifanlega kosti: WAL færslur taka minna pláss á plássi og gögn eru endurspiluð hraðar, eins og við endurheimt hamfara eða endurheimt á tímapunkti. Ef þú notar slíkar vísitölur í forritunum þínum (til dæmis, PostGIS-undirstaða landrýmisforrit nota GiST vísitöluna mikið), er þetta annar eiginleiki sem mun bæta upplifunina verulega án nokkurrar fyrirhafnar af þinni hálfu.
Skipting - stærri, betri, hraðari
PostgreSQL 10 kynnt
Í PostgreSQL 12 hefur frammistaða skiptingarkerfisins orðið verulega betri, sérstaklega ef það eru þúsundir skiptinga í töflunni. Til dæmis, ef fyrirspurn hefur aðeins áhrif á nokkrar skiptingar í töflu með þúsundum þeirra mun hún keyra mun hraðar. Afköst eru ekki bara betri fyrir þessar tegundir fyrirspurna. Þú munt líka taka eftir hversu hraðari INSERT aðgerðir eru á borðum með mörgum skiptingum.
Skráning gagna með því að nota
Þökk sé þessum kostum gerir PostgreSQL þér kleift að geyma enn stærri gagnasöfn og gera það auðveldara að sækja þau. Og engin fyrirhöfn af þinni hálfu. Ef forritið hefur margar skiptingar, eins og að taka upp tímaraðargögn, mun einföld uppfærsla bæta árangur þess verulega.
Þó að þetta sé ekki beinlínis „uppfærsla og njóttu“ framför, gerir PostgreSQL 12 þér kleift að búa til erlenda lykla sem vísa í skiptingartöflur, sem gerir skiptinguna ánægjulegt að vinna með.
MEÐ fyrirspurnum varð bara miklu betra
Þegar
Mér finnst oft að nýliðar í SQL elska að nota CTE; ef þú skrifar þær á ákveðinn hátt, þá líður þér í raun eins og þú sért að skrifa bráðnauðsynlegt forrit. Persónulega fannst mér gaman að endurskrifa þessar fyrirspurnir til að komast um без CTE og auka framleiðni. Nú er allt öðruvísi.
PostgreSQL 12 gerir þér kleift að setja inn ákveðna tegund af CTE án aukaverkana (SELECT
), sem er aðeins notað einu sinni undir lok beiðninnar. Ef ég fylgdist með CTE fyrirspurnunum sem ég endurskrifaði myndu flestar falla í þennan flokk. Þetta hjálpar forriturum að skrifa skýran kóða sem keyrir nú líka hratt.
Þar að auki fínstillir PostgreSQL 12 SQL framkvæmd sjálfa, án þess að þú þurfir að gera neitt. Og þó ég þurfi líklega ekki að fínstilla slíkar fyrirspurnir núna, þá er frábært að PostgreSQL heldur áfram að vinna að fínstillingu fyrirspurna.
Just-in-Time (JIT) - nú sjálfgefið
Á PostgreSQL 12 kerfum með stuðningi
Þar sem JIT er sjálfgefið virkt í PostgreSQL 12 mun frammistaða batna af sjálfu sér, en ég mæli með að prófa forritið í PostgreSQL 11, sem kynnti JIT, til að mæla árangur fyrirspurna og sjá hvort þú þurfir að stilla eitthvað.
Hvað með hina nýju eiginleikana í PostgreSQL 12?
PostgreSQL 12 er með fullt af flottum nýjum eiginleikum, allt frá getu til að skoða JSON gögn með því að nota staðlaða SQL/JSON leiðartjáningu til margþátta auðkenningar með færibreytu clientcert=verify-full
, búið til dálka og margt fleira. Nóg fyrir sérstaka færslu.
Eins og PostgreSQL 10 mun PostgreSQL 12 bæta heildarafköst strax eftir uppfærsluna. Þú getur auðvitað haft þína eigin leið - prófaðu forritið við svipaðar aðstæður á framleiðslukerfinu áður en þú gerir endurbætur kleift, eins og ég gerði með PostgreSQL 10. Jafnvel þó að PostgreSQL 12 sé nú þegar stöðugra en ég bjóst við, ekki vera latur við að prófa umsóknir vandlega áður en þær eru gefnar út í framleiðslu.
Heimild: www.habr.com