O vineri minunată tuturor! Mai rămâne din ce în ce mai puțin timp înainte de lansarea cursului
În stadiul de dezvoltare
În PostgreSQL 10, am văzut nașterea „partiționării declarative”, o caracteristică concepută pentru a rezolva multe probleme care nu erau rezolvabile folosind vechea metodă de moștenire. Acest lucru a condus la un instrument mult mai puternic care ne-a permis să împărțim datele pe orizontală!
Comparație de caracteristici
PostgreSQL 11 introduce un set impresionant de caracteristici noi care ajută la îmbunătățirea performanței și lasă tabelele partiționate mai transparente pentru aplicații.
1. Utilizarea excepțiilor limitatoare
2. Adaugă numai noduri
3. Numai pentru un tabel partiționat care face referire la unul nepartiționat
4. Indecșii trebuie să conțină toate coloanele cheie ale partiției
5. Restricțiile secțiunilor de ambele părți trebuie să se potrivească
productivitate
Avem și aici vești bune! A fost adăugată o nouă metodă WHERE
. Algoritmul anterior, la rândul său, a verificat fiecare secțiune pentru a determina dacă ar putea îndeplini condiția WHERE
. Acest lucru a dus la o creștere suplimentară a timpului de planificare pe măsură ce numărul de secțiuni a crescut.
În 9.6, cu partiționarea prin moștenire, rutarea tuplurilor în partiții se făcea de obicei prin scrierea unei funcții de declanșare care conținea o serie de instrucțiuni IF pentru a insera tuplu în partiția corectă. Aceste funcții ar putea fi foarte lente de executat. Cu partiționarea declarativă adăugată în versiunea 10, aceasta funcționează mult mai rapid.
Folosind un tabel partiționat cu 100 de partiții, putem evalua performanța încărcării a 10 milioane de rânduri într-un tabel cu 1 coloană BIGINT și 5 coloane INT.
Performanța interogării acestui tabel pentru a găsi o înregistrare indexată și a executa DML pentru a manipula o înregistrare (folosind doar 1 procesor):
Aici putem observa că performanța fiecărei operațiuni a crescut semnificativ de la PG 9.6. Cereri SELECT
arată mult mai bine, în special cele care sunt capabile să excludă mai multe partiții în timpul planificării interogărilor. Aceasta înseamnă că programatorul poate sări peste o mulțime de lucrări pe care ar fi trebuit să le facă înainte. De exemplu, căile nu mai sunt construite pentru secțiuni inutile.
Concluzie
Partiționarea tabelelor începe să devină o caracteristică foarte puternică în PostgreSQL. Vă permite să afișați rapid datele online și să le luați offline fără a aștepta finalizarea operațiunilor DML lente și masive.. Aceasta înseamnă, de asemenea, că datele aferente pot fi stocate împreună, ceea ce înseamnă că datele de care aveți nevoie pot fi accesate mult mai eficient. Îmbunătățirile aduse în această versiune nu ar fi fost posibile fără dezvoltatorii, recenzenții și comisitorii care au lucrat neobosit la toate aceste caracteristici.
Mulțumesc tuturor! PostgreSQL 11 arată fantastic!
Iată un articol atât de scurt, dar destul de interesant. Împărtășiți-vă comentariile și nu uitați să vă înscrieți
Sursa: www.habr.com