Buon venerdì a tutti! Manca sempre meno tempo all'avvio del corso
In fase di sviluppo
In PostgreSQL 10 abbiamo visto la nascita del “partizionamento dichiarativo”, una funzionalità progettata per risolvere molti problemi che erano irrisolvibili utilizzando il vecchio metodo di ereditarietà. Ciò ha portato a uno strumento molto più potente che ci ha permesso di dividere i dati orizzontalmente!
Confronto delle funzionalità
PostgreSQL 11 introduce una serie impressionante di nuove funzionalità che aiutano a migliorare le prestazioni e rendono le tabelle partizionate più trasparenti per le applicazioni.
1. Utilizzo delle eccezioni limitanti
2. Aggiunge solo nodi
3. Solo per una tabella partizionata che fa riferimento a una tabella non partizionata
4. Gli indici devono contenere tutte le colonne chiave della partizione
5. Le restrizioni di sezione su entrambi i lati devono corrispondere
Производительность
Anche qui abbiamo buone notizie! Nuovo metodo aggiunto WHERE
. L'algoritmo precedente, a sua volta, controllava ciascuna sezione per determinare se poteva soddisfare la condizione WHERE
. Ciò ha comportato un ulteriore aumento dei tempi di pianificazione con l'aumento del numero di sezioni.
Nella versione 9.6, con il partizionamento tramite ereditarietà, l'instradamento delle tuple nelle partizioni veniva generalmente eseguito scrivendo una funzione trigger che conteneva una serie di istruzioni IF per inserire la tupla nella partizione corretta. Queste funzioni potrebbero essere molto lente da eseguire. Con il partizionamento dichiarativo aggiunto nella versione 10, funziona molto più velocemente.
Utilizzando una tabella partizionata con 100 partizioni, possiamo valutare le prestazioni del caricamento di 10 milioni di righe in una tabella con 1 colonna BIGINT e 5 colonne INT.
Prestazioni dell'interrogazione di questa tabella per trovare un record indicizzato ed eseguire DML per manipolare un record (utilizzando solo 1 processore):
Qui possiamo vedere che le prestazioni di ciascuna operazione sono aumentate in modo significativo a partire dalla PG 9.6. Richieste SELECT
sembrano molto migliori, specialmente quelli che sono in grado di escludere più partizioni durante la pianificazione delle query. Ciò significa che lo scheduler può saltare gran parte del lavoro che avrebbe dovuto svolgere prima. Ad esempio, i percorsi non vengono più creati per le sezioni non necessarie.
conclusione
Il partizionamento delle tabelle sta iniziando a diventare una funzionalità molto potente in PostgreSQL. Ti consente di portare rapidamente i dati online e portarli offline senza attendere il completamento di operazioni DML lente e massicce.. Ciò significa anche che i dati correlati possono essere archiviati insieme, il che significa che è possibile accedere ai dati necessari in modo molto più efficiente. I miglioramenti apportati a questa versione non sarebbero stati possibili senza gli sviluppatori, i revisori e i committer che hanno lavorato instancabilmente su tutte queste funzionalità.
Grazie a tutti loro! PostgreSQL 11 sembra fantastico!
Ecco un articolo così breve ma piuttosto interessante. Condividi i tuoi commenti e non dimenticare di iscriverti
Fonte: habr.com