Phasellus pro pigris: quomodo PostgreSQL 12 melioris effectus?

Phasellus pro pigris: quomodo PostgreSQL 12 melioris effectus?

PostgreSQL 12novissima versio "optimi principii patentis mundi database relationis" egreditur in duobus hebdomadibus (si omnes secundum consilium ituri sunt). Hoc sequitur solitam cedulam solvendi novam versionem cum ton novarum notarum semel in anno, et ingenue quod est impressivum. Quam ob rem socius factus sum active communitatis PostgreSQL.

Mea sententia, dissimilis solutionum praecedentium, PostgreSQL 12 unam vel duas lineas novas (sicut partitio vel quaestionis parallelismus) non continet. Semel iocatus sum principale notam PostgreSQL 12 maiorem stabilitatem esse. Nonne id quod opus est cum critica notitia negotia tua administras?

Sed PostgreSQL 12 ibi non cessat: novis notis et melioramentis, applicationes melius facient; et omnia quae debes facere, upgrade!

(Bene, fortasse indices reficere, sed in hac liberatione non tam FORMIDULOSUS sicut consuevimus.)

Magnum erit in upgrade PostgreSQL ac statim significantibus melioramentis frui sine negotio supervacuo. Paucis abhinc annis, upgrade a PostgreSQL 9.4 ad PostgreSQL recensui 10 et vidi quomodo applicatio ad meliorem interrogationis parallelismum in PostgreSQL properavit 10. Et, praesertim, nihil fere a me requirebatur (modo parametri configurationem constitue. max_parallel_workers).

Convenit, commodum est cum applicationes statim post upgrade melius laborant. Et valde difficile probamus utentibus placere, quod PostgreSQL plus et plus ex illis habet.

Quomodo igitur simplex upgrade ad PostgreSQL 12 beatum te facere potest? Dicam nunc.

Maior indexing improvements

Sine indice, database non longe exibit. Quomodo aliud potes cognoscere cito? PostgreSQL systema fundamentalis indexing appellatur B arbor. Hoc genus indicis optimized est pro rationum repositione.

Non solum uti auctor CREATE INDEX ON some_table (some_column), ac PostgreSQL multum laboris facit ut indicem usque ad diem custodiat, dum bona constanter inserere, renovatio et delere. Omnia per seipsum operatur, quasi magica.

Sed PostgreSQL indices unam quaestionem habent - sunt inflati et suscipe extra orbis tractus ac reducere peractionem notitiarum retrievalium et adaequationis. Per "bloat" dico inefficax structuram indices tuendam. Hoc - vel non potest - referri ad tuplas purgamenta quae removet VACUUM Petro Gaghan pro delatione gratiae)Petrus Geoghegan)). Index bloat imprimis notabilis est in laboribus in quibus index actuose mutatur.

PostgreSQL 12 persecutionem indicibus B-arboris valde melioris, et experimenta cum probationibus sicut TPC-C ostendimus in mediocris 40% minus spatii nunc adhibitum esse. Nunc minus tempus non solum in indicibus B ligni servatis (id est in operationibus scribendis), sed etiam in notitiis reperiendis, quoniam indices multo minores sunt.

Applicationes, quae activo modo suas tabulas renovant - applicationes typice OLTP (real-time transaction processus) - uti disci et processus petitiones multo efficacius. Quo plus spatii orbis, eo plus spatii datorum infrastructurae crescendi habet.

Insidiae upgrade nonnullae requirunt indices B-arboris reaedificandi ad utilitatem horum beneficiorum (v.g. pg_upgrade indices automatice non reaedificabo). In prioribus versionibus PostgreSQL reaedificandi indices tabularum magnarum temporis momenti consecuti sunt quod mutationes interim fieri non poterant. Sed PostgreSQL 12 aliud frigidum notam habet: nunc indices in parallelis cum mandato reficere potes REINDEX CONSTANTERomnino vitare downtime.

Aliae emendationes ad substructionem infrastructuram in PostgreSQL XII. Alia res, ubi aliqua magia erat - scribentes injustitiam, praemisit iniuriarum, aka WAL (scribe-ante log). A scribe-ante index omnis negotii in PostgreSQL in casu defectio et replicatio. Applicationes uti ad archiving et punctum-in-vicis recuperatio. Scilicet, scribe-ante stipes ad orbis scriptum est, quae effectus attingere potest.

PostgreSQL 12 supra caput WAL in commentariis redegit quae per GiST, GIN et SP-GiST indices in constructione indice creantur. Pluribus tangibilibus commoditatibus haec praebet: WA monumenta minus orbis tractus capiunt, et notitia celerius reponitur, qualia sunt in calamitate recuperationis vel temporis recuperationis punctum. Si talibus indicibus in applicationibus tuis uteris (exempli gratia, applicationes geospatiales PostGIS fundatae utere GIST indicem multum), haec alia notio est quae experientiam sine ullo tuo labore insigniter emendabit.

Partitio - maior, melior, velocior

PostgreSQL 10 introduced declarativa partitionibus. In PostgreSQL 11 multo facilius uti facta est. In PostgreSQL 12 sectionum scala mutare potes.

In PostgreSQL 12. Persecutio systematis partitionis signanter melior factus est, praesertim si milia partitionum in mensa sunt. Exempli causa, si quaesitio paucas partitiones in tabula cum millibus earum afficit, multo citius exequetur. Euismod in his generibus queries non modo melius est. Videbis etiam quam citius operationes in tabulis cum multiplicibus partitionibus inseras.

Recordatio notitia usura PERSEQUOR - obiter, hoc est magna via mole data download et hic est exemplum accepto JSON β€” Tabulae partitae in PostgreSQL 12 efficaciores etiam facti sunt. CUM COPIA omnia iam celeriter, sed in PostgreSQL 12 absolute volat.

Per has commoda, PostgreSQL permittit tibi ut ampliora etiam indicia copia congreges et faciliora recipias. Nullo labore tuo. Si applicatio multas partitiones habet, ut temporis series notitias memorare, simplex upgrade opus suum signanter emendare faciet.

Dum haec emendatio non est prorsus "gradu et fruere", PostgreSQL 12 permittit tibi claves peregrinas creare quae tabularum partita referuntur, dividere voluptatem cum labore.

Cum queries iustus got multus melior

quod moles aptabatur aedificatur in communi mensa locutionum (aka CTE, aka CUM queries) non potui expectare articulum de scribendo quam felix application tincidunt cum PostgreSQL erant?. Hoc unum est ex iis quae applicationem accelerant. Nisi forte uteris CTE.

Saepe invenio newbies ad SQL amorem uti CTEs, si modo quodam modo scribes, vere sentit sicut programmata imperativa scribis. Personaliter, libenter has interrogationes rescribere ut circum prehendas sine CTE et fructibus augetis. Omnia autem alia sunt.

PostgreSQL 12 sino te inlineare genus specificum CTE sine effectu laterali (SELECT) , quod semel tantum circa finem petitionis adhibetur. Si vestigia CTE quaestionis rescripsimus, pleraeque in hunc categoriam caderent. Hoc adiuvat tincidunt scribunt codicem clarum qui nunc quoque cito currit.

Praeterea, PostgreSQL 12 optimize SQL ipsum supplicium, sine te aliquid facere. Et quamvis probabiliter non opus sit ad tales interrogationes nunc optimize, suus 'magnum est quod PostgreSQL opus pergit in optimization interrogatione.

Iustus-in-time (JIT) - nunc defaltam

De PostgreSQL systemata XII cum auxilio LLVM JIT compilatio per defaltam potens est. Imprimis auxilium accipitis JIT pro aliquibus operationibus internis, secundo, queries cum locutionibus (exemplum simplicissimum est x + y) in selectis tabulis (quas post SELECT), aggregata, locutiones cum WHERE clausulis et aliis uti JIT ad emendandum.

Cum JIT per defaltam in PostgreSQL 12 perficiatur, perficiendi rationem suam emendare potest, sed commendo applicationem probationis in PostgreSQL 11, quae JIT introduxit, ut perficiendi interrogationem metiaris et vide, si quid opus est modulari.

Quid de reliquis novis notis in PostgreSQL 12 ?

PostgreSQL 12 ton novas notas refrigerandi habet, ex facultate examinandi JSON data utendi vexillum SQL/JSON expressions itineris multi factoris authenticas cum modulo. clientcert=verify-fullcolumnas ac multo magis. Satis separatum post.

Velut PostgreSQL 10, PostgreSQL 12 meliorem altiore perficientur statim post upgrade. Tu, sane, habere potes viam suam - applicationes sub similibus condicionibus in systematis productionis antequam emendare debeas, sicut egi cum PostgreSQL 10. Etsi PostgreSQL 12 firmior iam est quam expectavi, noli piger esse in probatione. applicationes penitus antequam eas ad productionem dimittat.

Source: www.habr.com