Dapre mwen, kontrèman ak degaje anvan yo, PostgreSQL 12 pa gen youn oswa de karakteristik revolisyonè (tankou patisyon oswa paralelis rechèch). Yon fwa mwen te blag ke karakteristik prensipal la nan PostgreSQL 12 se pi gwo estabilite. Èske se pa sa ou bezwen lè ou jere done kritik biznis ou a?
Men, PostgreSQL 12 pa sispann la: ak nouvo karakteristik ak amelyorasyon, aplikasyon yo pral fè pi byen, ak tout sa ou bezwen fè se ajou!
(Oke, petèt rebati endèks yo, men nan lage sa a li pa menm pè jan nou te abitye fè.)
Li pral bon pou ajou PostgreSQL epi imedyatman jwi amelyorasyon enpòtan san meli melo pa nesesè. Kèk ane de sa, mwen te revize yon ajou soti nan PostgreSQL 9.4 a PostgreSQL 10 epi mwen te wè ki jan aplikasyon an te akselere grasa paralelis rechèch amelyore nan PostgreSQL 10. Epi, sa ki pi enpòtan, prèske pa gen anyen yo te mande nan men mwen (jis mete yon paramèt konfigirasyon). max_parallel_workers
).
Dakò, li pratik lè aplikasyon yo travay pi byen imedyatman apre yon ajou. Epi nou eseye trè difisil pou fè itilizatè yo plezi, paske PostgreSQL gen plis ak plis ladan yo.
Se konsa, ki jan yon senp amelyorasyon nan PostgreSQL 12 ka fè ou kontan? Mwen pral di w kounye a.
Gwo amelyorasyon Indexing
San yo pa Indexing, yon baz done pa pral ale lwen. Ki lòt fason ou ka jwenn enfòmasyon byen vit? Yo rele sistèm endèks fondamantal PostgreSQL la
Nou senpleman itilize operatè a CREATE INDEX ON some_table (some_column)
, ak PostgreSQL fè anpil travay pou kenbe endèks la ajou pandan ke nou toujou ap mete, mete ajou, ak efase valè yo. Tout bagay ap travay poukont li, tankou pa maji.
Men, endèks PostgreSQL gen yon pwoblèm - yo
PostgreSQL 12 anpil amelyore pèfòmans nan endèks B-tree, ak eksperyans ak referans tankou TPC-C te montre ke an mwayèn 40% mwens espas kounye a itilize. Koulye a, nou pase mwens tan pa sèlman sou kenbe endis B-tree (ki se, sou operasyon ekri), men tou sou rekipere done, paske endis yo pi piti anpil.
Aplikasyon ki aktivman mete ajou tab yo - tipikman aplikasyon OLTP (
Gen kèk estrateji amelyorasyon ki mande pou rebati endis B-tree pou pwofite avantaj sa yo (egzanp.
Gen lòt amelyorasyon nan enfrastrikti Indexing nan PostgreSQL 12. Yon lòt bagay kote te gen kèk maji -
PostgreSQL 12 te redwi anlè dosye WAL ke endis GiST, GIN, ak SP-GiST kreye pandan konstriksyon endèks yo. Sa a bay plizyè benefis byen mèb: Dosye WAL pran mwens espas disk, epi done yo rejoue pi vit, tankou pandan rekiperasyon dezas oswa rekiperasyon nan moman an. Si w itilize endèks sa yo nan aplikasyon w yo (pa egzanp, aplikasyon jeospasyo ki baze sou PostGIS yo sèvi ak endèks GiST la anpil), sa a se yon lòt karakteristik ki pral siyifikativman amelyore eksperyans lan san okenn efò nan men w.
Partitioning - pi gwo, pi bon, pi vit
PostgreSQL 10 prezante
Nan PostgreSQL 12, pèfòmans sistèm patisyon an vin pi bon anpil, sitou si gen plizyè milye patisyon nan tablo a. Pou egzanp, si yon rechèch afekte sèlman kèk patisyon nan yon tab ak dè milye de yo, li pral egzekite anpil pi vit. Pèfòmans pa sèlman amelyore pou kalite demann sa yo. Ou pral remake tou ki jan pi vit operasyon INSERT yo sou tab ki gen plizyè patisyon.
Anrejistreman done lè l sèvi avèk
Mèsi a avantaj sa yo, PostgreSQL pèmèt ou sere seri done menm pi gwo epi fè yo pi fasil pou rekipere. E pa gen efò sou pati ou. Si aplikasyon an gen anpil patisyon, tankou anrejistreman done seri tan, yon amelyorasyon senp pral siyifikativman amelyore pèfòmans li.
Pandan ke sa a se pa egzakteman yon "amelyorasyon epi jwi" amelyorasyon, PostgreSQL 12 pèmèt ou kreye kle etranje ki fè referans tab patisyon yo, fè patisyon an yon plezi pou travay avèk yo.
WITH queries jis te vin pi bon anpil
Lè
Mwen souvan jwenn ke newbies nan SQL renmen sèvi ak CTEs; si ou ekri yo yon sèten fason, li reyèlman santi w tankou w ap ekri yon pwogram enperatif. Pèsonèlman, mwen te renmen reekri demann sa yo jwenn alantou san yo pa CTE ak ogmante pwodiktivite. Koulye a, tout bagay diferan.
PostgreSQL 12 pèmèt ou aliye yon kalite espesifik CTE san efè segondè (SELECT
), ki itilize yon sèl fwa tou pre fen demann lan. Si mwen te swiv demann CTE mwen te reekri yo, pifò nan yo ta tonbe nan kategori sa a. Sa a ede devlopè yo ekri kòd klè ki kounye a tou kouri byen vit.
Anplis, PostgreSQL 12 optimize ekzekisyon SQL tèt li, san ou pa oblije fè anyen. Ak byenke mwen pwobableman pa pral bezwen optimize demann sa yo kounye a, li nan gwo ke PostgreSQL kontinye travay sou optimize demann.
Jis-in-Time (JIT) - kounye a default
Sou sistèm PostgreSQL 12 ak sipò
Depi JIT aktive pa default nan PostgreSQL 12, pèfòmans yo pral amelyore poukont li, men mwen rekòmande tès aplikasyon an nan PostgreSQL 11, ki te prezante JIT, pou mezire pèfòmans rechèch ak wè si ou bezwen melodi anyen.
E rès nouvo karakteristik yo nan PostgreSQL 12?
PostgreSQL 12 gen yon tòn nouvo karakteristik fre, ki soti nan kapasite pou egzamine done JSON lè l sèvi avèk ekspresyon wout estanda SQL/JSON rive nan otantifikasyon milti-faktè ak yon paramèt. clientcert=verify-full
, kreye kolòn ak plis ankò. Ase pou yon pòs separe.
Menm jan ak PostgreSQL 10, PostgreSQL 12 pral amelyore pèfòmans jeneral imedyatman apre amelyorasyon an. Ou, nan kou, ka gen pwòp chemen ou - teste aplikasyon an nan kondisyon ki sanble sou sistèm pwodiksyon an anvan pèmèt amelyorasyon, menm jan mwen te fè ak PostgreSQL 10. Menm si PostgreSQL 12 deja pi estab pase mwen te espere, pa fè parese nan tès la. aplikasyon yo byen, anvan yo lage yo nan pwodiksyon an.
Sous: www.habr.com