Informacje o nowych artykułach oraz akcjach edukacyjnych prosto na Twojej skrzynce e-mail!

Nowe funkcjonalności PostgreSQL 13 przyspieszą Wasze strony WWW na hostingu w nazwa.pl

Artykuł powstał przy współpracy z firmą nazwa.pl.

Bazy danych to nieodłączny element większości aplikacji internetowych. Ich rozwój znacząco wpłynął na postęp w dziedzinie informatyki, umożliwiając skuteczną implementację coraz bardziej zaawansowanych funkcjonalności.

Sięgając trochę do historii, termin „bazy danych” został po raz pierwszy wykorzystany w listopadzie 1963 roku podczas sympozjum pod nazwą „Development and Management of a Computer-centered Data Base”. Pierwszy system zarządzania bazami danych opracowano już w latach 60. XX wieku, a w roku 1970 brytyjski informatyk Edgard Frank Codd zaproponował relacyjny, powszechnie dzisiaj używany, model bazy danych. Początkowo przedsięwzięcie zostało jednak chłodno przyjęte i przez długi czas pozostawało tylko i wyłącznie w sferze rozważań akademickich. Lata 90. XX wieku zaowocowały skupieniem uwagi na obiektowych bazach danych. Bardzo dobrze sprawdzały się one wszędzie tam, gdzie istniała potrzeba operowania na danych, których nie można było w prosty sposób „przekonwertować” do tabel powiązanych relacjami. Na ten sam okres ubiegłego wieku przypada również rozwój baz na licencji Open Source, dzięki czemu dzisiaj możemy korzystać z rozwiązań takich jak PostgreSQL czy MySQL.

Rozwój relacyjnych baz danych nie zatrzymał się dekadę temu. Trwa do dziś, a systemy te na stałe zadomowiły się w wielu informatycznych projektach. Mowa tutaj o bazach komercyjnych takich firm jak Oracle, czy Microsoft oraz tych otwarto-źródłowych — jednej z nich przyjrzymy się bliżej w dzisiejszym materiale.

PostgreSQL – co to właściwie jest?

Jak pewnie się domyślacie, mowa oczywiście o PostgreSQL — jednym z najpopularniejszych systemów wykorzystywanym do zarządzania relacyjnymi bazami danych. Po raz pierwszy został on wydany 1 maja 1995 roku, a jego początki sięgają lat 70. ubiegłego wieku. PostgreSQL oferuje rozbudowany wachlarz funkcjonalności, które na co dzień są używane w bardzo wielu dużych projektach informatycznych. Mam tutaj na myśli rozwiązania takie jak:

  • Obsługę języka PL/PgSQL — język proceduralny umożliwiający tworzenie zaawansowanych funkcji, wywoływanych bezpośrednio z poziomu bazy danych,
  • Możliwość tworzenia różnego rodzaju indeksów – B-drzewa, Hash, GiST, SP-GiST, GIN,
  • Mechanizm wyzwalaczy (ang. triggers),
  • Obsługę MCC (ang. Multiversion Concurrency Control) – wykorzystywany do zarządzania transakcjami,
  • Szereg zaawansowanych typów danych — UUID, JSON, XML, typ zakresowy (ang. Range Type).

To oczywiście tylko wybrane funkcjonalności PostgreSQL. Olbrzymią popularność omawianego systemu można sobie uzmysłowić na przykładzie projektów, w których jest wykorzystywany. Znalazł swoje zastosowanie m.in. w międzynarodowej stacji kosmicznej, OpenStreetMap, Reddit czy programie Skype. To mówi samo za siebie.

Zespół odpowiedzialny za rozwój PostgreSQL pracuje nieprzerwanie, a najnowsze wydanie dostarczyło nam wielu ciekawych usprawnień i funkcjonalności. Wspólnie z firmą nazwa.pl, dostawcą usług hostingowych, postanowiliśmy przygotować dla Was krótki przegląd nowości, jakie zostały opublikowane w 13 wersji PostgreSQL. 

Indeksy

W celu skrócenia czasu potrzebnego do odnalezienia konkretnych rekordów, systemy relacyjnych baz danych wykorzystują mechanizm zwany B-drzewami. B-drzewo to abstrakcyjna struktura danych, odpowiedzialna za przechowywanie kluczy w pewnym ustalonym porządku, mającym na celu ograniczenie liczby wykonywanych operacji. PostgreSQL 13 wprowadza szereg usprawnień w implementacji tego rozwiązania. Warto zwrócić uwagę na mechanizm efektywnego przechowywania duplikatów indeksów B-drzew. W skrócie polega on na tym, że system samodzielnie „pilnuje”, aby nie dochodziło do niepotrzebnej duplikacji. Pozwoli to zaoszczędzić co nieco przestrzeni oraz jeszcze bardziej zoptymalizować wykonywane zadania.

 Aby skorzystać z tego mechanizmu w istniejących bazach danych, jeśli z jakichś powodów nie chcecie zakładać blokady na operacje CRUD (ang. Create, Read, Update, Delete), należy wykonać polecenie REINDEX lub REINDEX CONCURRENTLY.

Typy danych

Nie mogło zabraknąć również nowości związanej z typami danych. Twórcy odpowiedzialni za PostgreSQL w najnowszym wydaniu zaoferowali nam kilka nowych formatów, mających przyspieszyć codzienną pracę. Jeśli wykorzystujecie w swoich projektach system zwany transakcjami, to polecam zapoznać się z dokumentacją dotyczącą nowo dodanej obsługi typu xid8, który jest odpowiedzialny za przechowywanie identyfikatorów transakcji. Charakteryzuje się on głównie tym, iż zabezpiecza programistę przed duplikacją numerów identyfikacyjnych. Wartości wykorzystywane przez ten format rosną ściśle monotonicznie i nie można ich użyć ponownie w okresie istnienia klastra bazy danych.

Funkcje

Aż strach pomyśleć, jak wyglądałyby kwerendy, gdyby nie szereg różnego rodzaju funkcji ułatwiających osiągnięcie zamierzonego celu. Wiele operacji ze względów wydajnościowych (duża moc obliczeniowa serwerów bazodanowych) dobrze wykonywać już na etapie tworzenia zapytania SQL. Również i tutaj warto pochylić się nad kilkoma ciekawymi rozwiązaniami. Korzystając z PostgreSQL mamy do dyspozycji między innymi zupełnie nową funkcję NORMALIZE(), która umożliwia konwertowanie ciągu znaków według podanej specyfikacji Unicode.

Pamiętaj o kopii zapasowej

Zabezpieczenie danych poprzez regularne tworzenie kopii zapasowych jest rzeczą niezwykle ważną. Choć istnieją profesjonalne narzędzia do backupu, czego przykładem jest wielokrotnie wyróżniana usługa Cloud Backup w nazwa.pl, warto raz na jakiś czas zadbać o ochronę plików również we własnym zakresie. Najnowsza wersja PostgreSQL dostarcza nam nieco narzędzi, które mają za zadanie ułatwić wykonanie kopii danych. Mamy tutaj do dyspozycji operacje takie jak pg_verifybackup, która w prosty sposób weryfikuje utworzone kopie zapasowe. To jednak nie wszystko. Wczytując się dokładnie w dokumentację, możemy również znaleźć informacje na temat innych użytecznych funkcjonalności, choćby takich jak pg_basebackup, który z kolei przeprowadza estymację całkowitego rozmiaru kopii zapasowej. Pozornie „niepotrzebna” rzecz, pozwala jednak w prosty sposób oszacować, kiedy cały proces zostanie zakończony. Taka informacja może być przydatna zwłaszcza w kontekście dużych baz danych. 

PL/PgSql

Baza PostgreSQL oferuje wsparcie dla języka proceduralnego PL/pgSQL. Jest to rozwiązanie analogiczne do PL/SQL, znanego z baz Oracle. Wykorzystanie tego mechanizmu umożliwia budowę nieco bardziej zaawansowanych kwerend, a właściwie to funkcji, które mogą wykonać przeróżne zadania bezpośrednio z poziomu serwera bazodanowego. W najnowszej wersji PostgreSQL doczekał się kilku usprawnień wydajnościowych, co powinno znacznie wpłynąć na ogólny odbiór Waszego oprogramowania przez użytkowników końcowych.

Wszystko to jest już dostępne do Twojej dyspozycji!

Opisane w niniejszym materiale nowości to oczywiście nie wszystkie zmiany, jakie zostały wprowadzone w najnowszej wersji PostgreSQL. Jeśli chcecie poznać je dokładniej, odsyłam Was do stosownej dokumentacji technicznej. Znajdziecie tam kompletną listę nowych funkcjonalności oraz ich dokładny opis. Jednak o wiele ciekawsze będzie samodzielne przetestowanie wszystkich omawianych elementów oraz weryfikacja ich działania na praktycznych przykładach. PostgreSQL 13 jest już dostępny dla osób korzystających z CloudHostingu w nazwa.pl. Jeśli nie posiadasz hostingu we wspomnianej firmie, to jeszcze nic straconego. Wykorzystując darmowy 30-dniowy okres próbny w nazwa.pl, możesz bez żadnych zobowiązań wszystko sprawdzić i zdecydować, czy chcesz pozostać na dłużej. A nadmienię, że warto, ponieważ nazwa.pl dysponuje najszybszymi serwerami w Polsce. 

Aktywacja bazy PostgreSQL 13 w nazwa.pl

Mam nadzieję, że moje argumenty przekonały Was do przeprowadzenia indywidualnych eksperymentów. Jeśli tak, to zapraszam do lektury krótkiego poradnika na temat aktywacji omawianej bazy danych w ramach hostingu nazwa.pl.

1. Z poziomu Panelu Klienta przejdźcie do zakładki Centrum logowania, a następnie wybierzcie opcję Active.Admin.

2. Kolejno, po pomyślnym przekierowaniu do aplikacji umożliwiającej zarządzenie serwerem, wybierzcie zakładkę Bazy danych z menu głównego.

Panel Active.Admin

3. Rozwińcie menu kontekstowe umożliwiające wybór wersji bazy danych, zaznaczcie opcję PostgreSQL 13.x, uzupełnijcie nazwę, opis oraz hasło użytkownika.

Tworzenie bazy danych.

4. Po kliknięciu przycisku Zapisz na ekranie zobaczycie dane dostępowe do Waszego serwera bazodanowego. Zapiszcie je w bezpiecznym miejscu.

Dane uwierzytelniające.

5. Korzystając z danych uwierzytelniających, zalogujcie się do aplikacji phpPgAdmin, dostępnej pod adresem pgsql.nazwa.pl. Dzięki temu w prosty sposób będziecie w stanie zarządzać nowo utworzoną bazą PostgreSQL.

Aplikacja phpPgAdmin.

Gotowe!

Teraz nie pozostaje Wam nic innego, jak tylko przetestować przygotowane nowości.

Pytania?

Jeśli macie jakieś wątpliwości lub pytania związane z opisywanym tematem, to zapraszam do sekcji komentarzy. Jeśli będę tylko znał odpowiedź, postaram się Wam pomóc.

Spodobało się?

Jeśli tak, to zarejestruj się do newslettera aby otrzymywać informacje nowych artykułach oraz akcjach edukacyjnych. Gwarantuję 100% satysfakcji i żadnego spamowania!

, , , , , , , , , ,

Dodaj komentarz

Komentarze (4)

  • Janooo pisze:

    PostgreSQL jest trudny tak jak MongoDB? Pn jest raczej stosowany z Django i RoR tak? Wydaje mi się że MySQL i MariaDB są najłatwiejsze.

    • Hej Janooo, odnosząc się do Twojej wiadomości, przyznam szczerze, że trochę jej nie rozumiem. PostgreSQL, MySQL oraz MariaDB to bazy danych z tej samej „rodziny” oparte o SQL i relacje. MongoDB to baza nierelacyjna. Nie ma też żadnego związku między silnikiem bazodanowym a wybraną technologią backendową.

      • Janek pisze:

        Ale przecież MongoDB tym się różni od pozostałych baz danych, że nie wykorzystuje podobnego języka SQL tylko JavaScript.

      • Hej Janek, no to właśnie to napisałem. Z tych czterech podanych baz, MySQL, MariaDB oraz PostgreSQL to bazy relacyjne, a MongoDB to baza nierelacyjna.

Odpowiedz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Pin It on Pinterest