Ni ero mi, ko dabi awọn idasilẹ iṣaaju, PostgreSQL 12 ko ni ọkan tabi meji awọn ẹya ara ẹrọ rogbodiyan (bii ipin tabi ibajọra ibeere). Mo ṣe awada ni ẹẹkan pe ẹya akọkọ ti PostgreSQL 12 jẹ iduroṣinṣin nla. Ṣe kii ṣe ohun ti o nilo nigba ti o ṣakoso data pataki ti iṣowo rẹ?
Ṣugbọn PostgreSQL 12 ko da duro nibẹ: pẹlu awọn ẹya tuntun ati awọn ilọsiwaju, awọn ohun elo yoo dara julọ, ati gbogbo ohun ti o nilo lati ṣe ni igbesoke!
(O dara, boya tun ṣe awọn atọka, ṣugbọn ninu itusilẹ yii kii ṣe idẹruba bi a ti lo.)
Yoo jẹ nla lati ṣe igbesoke PostgreSQL ati lẹsẹkẹsẹ gbadun awọn ilọsiwaju pataki laisi wahala ti ko wulo. Ni ọdun diẹ sẹyin, Mo ṣe atunyẹwo igbesoke lati PostgreSQL 9.4 si PostgreSQL 10 ati rii bi ohun elo ṣe ṣe soke ọpẹ si imudara ibeere ibeere ni PostgreSQL 10. Ati pe, pataki julọ, o fẹrẹ jẹ ohunkohun ti a beere lọwọ mi (kan ṣeto paramita iṣeto kan max_parallel_workers
).
Gba, o rọrun nigbati awọn ohun elo ṣiṣẹ dara julọ lẹsẹkẹsẹ lẹhin igbesoke. Ati pe a gbiyanju pupọ lati wu awọn olumulo, nitori PostgreSQL ni diẹ sii ati diẹ sii ninu wọn.
Nitorinaa bawo ni igbesoke ti o rọrun si PostgreSQL 12 ṣe le jẹ ki inu rẹ dun? Emi yoo so fun o bayi.
Awọn ilọsiwaju atọka pataki
Laisi itọka, data data kii yoo lọ jinna. Bawo ni ohun miiran ti o le ni kiakia ri alaye? Eto atọka ipilẹ PostgreSQL ni a pe
A nìkan lo onišẹ CREATE INDEX ON some_table (some_column)
, ati PostgreSQL ṣe ọpọlọpọ iṣẹ lati tọju atọka titi di oni nigba ti a fi sii nigbagbogbo, imudojuiwọn, ati paarẹ awọn iye. Ohun gbogbo ṣiṣẹ lori ara rẹ, bi ẹnipe nipa idan.
Ṣugbọn awọn atọka PostgreSQL ni iṣoro kan - wọn
PostgreSQL 12 ṣe ilọsiwaju iṣẹ ti awọn atọka B-igi, ati awọn adanwo pẹlu awọn aṣepari bii TPC-C ti fihan pe ni apapọ 40% kere si aaye ni lilo bayi. Bayi a lo akoko diẹ kii ṣe lori mimu awọn atọka B-igi (iyẹn ni, lori awọn iṣẹ kikọ), ṣugbọn tun lori gbigba data, nitori awọn atọka kere pupọ.
Awọn ohun elo ti o ṣe imudojuiwọn awọn tabili wọn taara - ni igbagbogbo awọn ohun elo OLTP (
Diẹ ninu awọn ilana igbesoke nilo atunko awọn atọka igi B lati lo anfani awọn anfani wọnyi (fun apẹẹrẹ.
Awọn ilọsiwaju miiran wa si awọn amayederun atọka ni PostgreSQL 12. Ohun miiran nibiti idan kan wa -
PostgreSQL 12 ti dinku oke ti awọn igbasilẹ WAL ti o ṣẹda nipasẹ awọn atọka GiST, GIN, ati SP-GiST lakoko ikole atọka. Eyi n pese ọpọlọpọ awọn anfani ojulowo: Awọn igbasilẹ WAL gba aaye disk ti o dinku, ati pe a tun ṣe data ni iyara, gẹgẹbi lakoko imularada ajalu tabi imularada akoko-akoko. Ti o ba lo iru awọn atọka ninu awọn ohun elo rẹ (fun apẹẹrẹ, awọn ohun elo geospatial ti o da lori PostGIS lo itọka GiST pupọ), eyi jẹ ẹya miiran ti yoo mu iriri naa pọ si ni pataki laisi igbiyanju eyikeyi ni apakan rẹ.
Pipin - tobi, dara julọ, yiyara
PostgreSQL 10 ṣe afihan
Ni PostgreSQL 12, iṣẹ ṣiṣe ti eto ipin ti di pupọ dara julọ, paapaa ti ẹgbẹẹgbẹrun awọn ipin ba wa ninu tabili. Fun apẹẹrẹ, ti ibeere kan ba kan awọn ipin diẹ ninu tabili pẹlu ẹgbẹẹgbẹrun wọn, yoo ṣiṣẹ ni iyara pupọ. Iṣẹ ṣiṣe kii ṣe ilọsiwaju fun iru awọn ibeere wọnyi. Iwọ yoo tun ṣe akiyesi bi awọn iṣẹ INSERT yiyara ṣe wa lori awọn tabili pẹlu awọn ipin pupọ.
Gbigbasilẹ data nipa lilo
Ṣeun si awọn anfani wọnyi, PostgreSQL gba ọ laaye lati ṣafipamọ awọn eto data ti o tobi paapaa ati jẹ ki wọn rọrun lati gba pada. Ati pe ko si igbiyanju ni apakan rẹ. Ti ohun elo naa ba ni ọpọlọpọ awọn ipin, gẹgẹbi awọn data jara akoko gbigbasilẹ, igbesoke ti o rọrun yoo mu iṣẹ rẹ pọ si ni pataki.
Lakoko ti eyi kii ṣe ilọsiwaju “igbesoke ati igbadun” ni deede, PostgreSQL 12 gba ọ laaye lati ṣẹda awọn bọtini ajeji ti o tọka si awọn tabili ipin, ṣiṣe ipin ni idunnu lati ṣiṣẹ pẹlu.
PẸLU awọn ibeere kan dara pupọ
Nigbawo
Nigbagbogbo Mo rii pe awọn tuntun si SQL nifẹ lati lo awọn CTE; ti o ba kọ wọn ni ọna kan, o kan lara gaan bi o ṣe nkọ eto pataki kan. Tikalararẹ, Mo nifẹ lati tunkọ awọn ibeere wọnyi lati wa ni ayika laisi CTE ati mu iṣelọpọ pọ si. Bayi ohun gbogbo yatọ.
PostgreSQL 12 gba ọ laaye lati laini iru CTE kan pato laisi awọn ipa ẹgbẹ (SELECT
), eyi ti o ti lo ni ẹẹkan sunmọ opin ibeere naa. Ti MO ba tọju awọn ibeere CTE ti Mo tun kọ, pupọ julọ wọn yoo ṣubu sinu ẹka yii. Eyi ṣe iranlọwọ fun awọn olupilẹṣẹ kọ koodu mimọ ti o tun nṣiṣẹ ni iyara.
Pẹlupẹlu, PostgreSQL 12 ṣe imudara ipaniyan SQL funrararẹ, laisi o ni lati ṣe ohunkohun. Ati pe botilẹjẹpe Emi kii yoo nilo lati mu iru awọn ibeere bẹ dara ni bayi, o jẹ nla pe PostgreSQL tẹsiwaju lati ṣiṣẹ lori iṣapeye ibeere.
Just-in-Time (JIT) – bayi aiyipada
Lori awọn ọna ṣiṣe PostgreSQL 12 pẹlu atilẹyin
Niwọn igba ti JIT ti ṣiṣẹ nipasẹ aiyipada ni PostgreSQL 12, iṣẹ yoo dara si funrararẹ, ṣugbọn Mo ṣeduro idanwo ohun elo ni PostgreSQL 11, eyiti o ṣafihan JIT, lati wiwọn iṣẹ ṣiṣe ibeere ati rii boya o nilo lati tune ohunkohun.
Kini nipa iyoku awọn ẹya tuntun ni PostgreSQL 12?
PostgreSQL 12 ni pupọ ti awọn ẹya tuntun ti o tutu, lati agbara lati ṣe ayẹwo data JSON nipa lilo awọn ikosile ipa ọna SQL/JSON boṣewa si ijẹrisi ifosiwewe pupọ pẹlu paramita kan clientcert=verify-full
, ṣẹda ọwọn ati Elo siwaju sii. To fun lọtọ post.
Bii PostgreSQL 10, PostgreSQL 12 yoo mu ilọsiwaju gbogbogbo ṣiṣẹ lẹsẹkẹsẹ lẹhin igbesoke naa. Iwọ, dajudaju, le ni ọna ti ara rẹ - ṣe idanwo ohun elo labẹ awọn ipo ti o jọra lori eto iṣelọpọ ṣaaju ṣiṣe awọn ilọsiwaju, bi mo ti ṣe pẹlu PostgreSQL 10. Paapa ti PostgreSQL 12 ti jẹ iduroṣinṣin diẹ sii ju Mo nireti lọ, maṣe ṣe ọlẹ ni idanwo. awọn ohun elo daradara, ṣaaju idasilẹ wọn sinu iṣelọpọ.
orisun: www.habr.com