Hav en god fredag alle sammen! Der er mindre og mindre tid tilbage, før kurset starter
På udviklingsstadiet
I PostgreSQL 10 så vi fødslen af "deklarativ partitionering", en funktion designet til at løse mange problemer, der var uløselige ved hjælp af den gamle arvemetode. Dette førte til et meget mere kraftfuldt værktøj, der gjorde det muligt for os at opdele data vandret!
Funktionssammenligning
PostgreSQL 11 introducerer et imponerende sæt af nye funktioner, der hjælper med at forbedre ydeevnen og gøre opdelte tabeller mere gennemsigtige for applikationer.
1. Brug af begrænsende undtagelser
2. Tilføjer kun noder
3. Kun for en opdelt tabel, der refererer til en ikke-opdelt tabel
4. Indekser skal indeholde alle nøglekolonner i partitionen
5. Sektionsbegrænsninger på begge sider skal matche
Ydelse
Vi har også gode nyheder her! Ny metode tilføjet WHERE
. Den tidligere algoritme kontrollerede til gengæld hver sektion for at afgøre, om den kunne opfylde betingelsen WHERE
. Dette resulterede i en yderligere stigning i planlægningstiden, da antallet af strækninger steg.
I 9.6, med partitionering via arv, blev routing af tuples til partitioner typisk udført ved at skrive en triggerfunktion, der indeholdt en række IF-sætninger for at indsætte tuplet i den korrekte partition. Disse funktioner kan være meget langsomme at udføre. Med deklarativ partitionering tilføjet i version 10, fungerer dette meget hurtigere.
Ved at bruge en opdelt tabel med 100 partitioner kan vi evaluere ydeevnen ved at indlæse 10 millioner rækker i en tabel med 1 BIGINT-kolonne og 5 INT-kolonner.
Ydeevne ved at forespørge denne tabel for at finde én indekseret post og eksekvere DML for at manipulere én post (kun ved brug af 1 processor):
Her kan vi se, at ydeevnen for hver operation er steget markant siden PG 9.6. Forespørgsler SELECT
ser meget bedre ud, især dem der er i stand til at udelukke flere partitioner under forespørgselsplanlægning. Det betyder, at planlæggeren kan springe meget arbejde over, som den skulle have udført før. Eksempelvis bygges der ikke længere stier til unødvendige strækninger.
Konklusion
Tabelpartitionering begynder at blive en meget kraftfuld funktion i PostgreSQL. Det giver dig mulighed for hurtigt at bringe data online og tage dem offline uden at vente på, at langsomme, massive DML-operationer er færdige.. Dette betyder også, at relaterede data kan gemmes sammen, hvilket betyder, at de data, du har brug for, kan tilgås meget mere effektivt. Forbedringerne i denne version ville ikke have været mulige uden udviklerne, anmelderne og committerne, der arbejdede utrætteligt på alle disse funktioner.
Tak til dem alle! PostgreSQL 11 ser fantastisk ud!
Her er sådan en kort, men ret interessant artikel. Del dine kommentarer og glem ikke at tilmelde dig
Kilde: www.habr.com