Krok za krokiem — sekwencje w PostgreSQL

2018-05-07

Sekwencja – uporządkowany ciąg znaków, następujący po sobie w ściśle określonej kolejności. W PostgreSQL (a szerzej w kontekście baz danych), specjalny obiekt bazodanowy – tak pożyteczny, a zarazem już tak w zasadzie oczywisty, że nie spodziewamy się zmian w ich funkcjonowaniu. Tymczasem zmiany takie zostały wprowadzone w PostgreSQL 10. Zazwyczaj sekwencji używa się do automatycznego […]

Czytaj więcej

Pozbywanie się bezczynnych transakcji w PostgreSQL – jak to zrobić?

2018-02-05
blank

Jedną ze zmór administratorów baz danych są sesje, które rozpoczęły blok transakcyjny poleceniem BEGIN, ewentualnie wykonały jakieś operacje i „zamarły”. Mogą stanowić sporą przeszkodę w sprawnej pracy klastra – alokują zasoby, mogą być przyczyną problemów z lokowaniem tabel (LOCK TABLE), ograniczają pulę połączeń, opóźniają replikację i procesy VACUUM.

Czytaj więcej

Typy indeksów w PostgreSQL. Bloom – kontra dla B-tree?

2018-01-29
blank

Dobrze zaprojektowana baza oparta o relacyjny system zarządzania powinna w jakimś (i to raczej w większym) stopniu uwzględniać postulaty Edgara F. Codda – także te dotyczące postaci normalnych. Respektowanie tych założeń powoduje powstanie w strukturze tabel przechowujących klucze główne do wielu innych tabel. Tabele te są bardzo często przeszukiwane – np. podczas filtrowania. Warto zatem zadbać o ich optymalizację pod tym kątem. Artykuł ten porównuje wydajność dwóch indeksów: b-tree oraz bloom na silniku PostgreSQL w wersji 10.

Czytaj więcej