Miłego piątku wszystkim! Do rozpoczęcia kursu pozostało coraz mniej czasu
Na etapie rozwoju
W PostgreSQL 10 byliśmy świadkami narodzin „partycjonowania deklaratywnego”, funkcji zaprojektowanej w celu rozwiązania wielu problemów, których nie dało się rozwiązać przy użyciu starej metody dziedziczenia. Doprowadziło to do znacznie potężniejszego narzędzia, które pozwoliło nam dzielić dane w poziomie!
Porównanie funkcji
PostgreSQL 11 wprowadza imponujący zestaw nowych funkcji, które pomagają poprawić wydajność i sprawić, że partycjonowane tabele będą bardziej przejrzyste dla aplikacji.
1. Stosowanie wyjątków ograniczających
2. Dodaje tylko węzły
3. Tylko w przypadku tabeli podzielonej na partycje odnoszącej się do tabeli niepartycjonowanej
4. Indeksy muszą zawierać wszystkie kluczowe kolumny partycji
5. Ograniczenia sekcji po obu stronach muszą być zgodne
produktywność
Tutaj też mamy dobrą wiadomość! Dodano nową metodę WHERE
. Poprzedni algorytm z kolei sprawdzał każdą sekcję, aby określić, czy może spełnić warunek WHERE
. Spowodowało to dodatkowe wydłużenie czasu planowania w miarę wzrostu liczby sekcji.
W wersji 9.6, z partycjonowaniem poprzez dziedziczenie, kierowanie krotek do partycji zwykle odbywało się poprzez napisanie funkcji wyzwalającej, która zawierała serię instrukcji JEŻELI, aby wstawić krotkę do właściwej partycji. Wykonywanie tych funkcji może być bardzo powolne. Dzięki partycjonowaniu deklaratywnemu dodanemu w wersji 10 działa to znacznie szybciej.
Korzystając z podzielonej tabeli zawierającej 100 partycji, możemy ocenić wydajność ładowania 10 milionów wierszy do tabeli zawierającej 1 kolumnę BIGINT i 5 kolumn INT.
Wydajność wykonywania zapytań do tej tabeli w celu znalezienia jednego indeksowanego rekordu i wykonania DML w celu manipulowania jednym rekordem (przy użyciu tylko 1 procesora):
Tutaj widzimy, że wydajność każdej operacji znacznie wzrosła od wersji PG 9.6. Upraszanie SELECT
wyglądają znacznie lepiej, szczególnie te, które mogą wykluczać wiele partycji podczas planowania zapytań. Oznacza to, że planista może pominąć wiele pracy, którą powinien był wykonać wcześniej. Na przykład ścieżki nie są już budowane dla niepotrzebnych sekcji.
wniosek
Partycjonowanie tabel staje się bardzo potężną funkcją PostgreSQL. Umożliwia szybkie wyświetlanie danych online i przenoszenie ich do trybu offline, bez czekania na zakończenie powolnych, masowych operacji DML.. Oznacza to również, że powiązane dane można przechowywać razem, co oznacza, że dostęp do potrzebnych danych jest znacznie efektywniejszy. Ulepszenia wprowadzone w tej wersji nie byłyby możliwe bez programistów, recenzentów i osób zatwierdzających, którzy niestrudzenie pracowali nad wszystkimi tymi funkcjami.
Dzięki im wszystkim! PostgreSQL 11 wygląda fantastycznie!
Oto taki krótki, ale dość ciekawy artykuł. Podziel się swoimi komentarzami i nie zapomnij się zarejestrować
Źródło: www.habr.com