---
title: "Що нового в PostgreSQL 19: графові запити, GROUP BY ALL і крок до \"універсальної\" бази даних."
url: https://laravelukraine.com/blog/shho-novogo-v-postgresql-19-grafovi-zapiti-group-by-all-i-krok-do-universalnoyi-bazi-danix
author: "Олексій Бабінцев"
date: 2026-06-19
---

# Що нового в PostgreSQL 19: графові запити, GROUP BY ALL і крок до "універсальної" бази даних.

PostgreSQL 19 продовжує важливу тенденцію останніх років: класична реляційна база даних поступово перетворюється на універсальну платформу для роботи з різними типами даних - від JSON до графів і аналітики.

Зараз це ще beta-версія, тому частина деталей може змінитися до фінального релізу. Але вже зараз видно напрямок розвитку, який буде цікавий backend-розробникам, особливо тим, хто працює з Laravel і складними доменними моделями.

## Графові запити через SQL/PGQ

Одна з найцікавіших нових можливостей - підтримка SQL Property Graph Queries (SQL/PGQ).

Це дозволяє працювати з графовими зв'язками прямо в SQL, без необхідності підключати окремі graph databases.

Приклад концепту:

```sql
SELECT *
FROM GRAPH_TABLE (
  social_graph
  MATCH (person)-[follows]->(creator)
  COLUMNS (
    person.name AS follower,
    creator.name AS creator
  )
);
```

### Що це дає на практиці

Графові запити особливо корисні для:

* соціальних мереж
* систем рекомендацій
* fraud detection (виявлення шахрайства)
* аналізу залежностей у системах

Фактично, для багатьох задач з'являється менша потреба в окремих рішеннях типу Neo4j - принаймні для базових сценаріїв.

## GROUP BY ALL: менше коду, менше помилок

У PostgreSQL 19 з'являється синтаксис `GROUP BY ALL`, який прибирає зайвий boilerplate.

Було:

```sql
SELECT country, city, COUNT(*)
FROM users
GROUP BY country, city;
```

Тепер:

```sql
SELECT country, city, COUNT(*)
FROM users
GROUP BY ALL;
```

### Як це працює

PostgreSQL автоматично визначає всі неагреговані колонки та використовує їх для групування.

### Переваги

* менше повторюваного коду
* менше шансів помилитися
* більш читабельні запити

Для великих SQL-запитів це може суттєво зменшити "шум".

## WAIT FOR LSN: контроль реплік і консистентності

Ще одне важливе покращення - `WAIT FOR LSN`.

Це механізм, який дозволяє дочекатися, поки репліка застосує зміни до певного LSN (Log Sequence Number).

Приклад ідеї:

```sql
WAIT FOR '0/16B6C50' TO BE REPLAYED;
```

### Навіщо це потрібно

У розподілених системах часто виникає проблема:

> запис зробили в primary, але read replica ще не встигла оновитися

`WAIT FOR LSN` дозволяє:

* дочекатися реплікації перед читанням
* реалізувати "read-your-writes" consistency
* зменшити race conditions у критичних сценаріях

Це особливо корисно для SaaS-систем і high-load backend'ів.

## Покращена робота з JSON

PostgreSQL давно має сильну JSON-підтримку, і вона продовжує покращуватися.

Приклад запиту:

```sql
SELECT data->>'name' AS name 
FROM users 
WHERE data @> '{"role": "admin"}';
```

### Що важливо

PostgreSQL дозволяє:

* зберігати напівструктуровані дані
* ефективно їх фільтрувати
* використовувати індекси
* комбінувати JSON з JOIN'ами та транзакціями

Фактично, база закриває частину кейсів, де раніше використовували MongoDB або інші document-oriented рішення.

## Загальна тенденція: PostgreSQL стає "універсальною базою"

Якщо подивитися на розвиток останніх версій, видно чіткий напрямок:

PostgreSQL поступово виходить за межі класичної реляційної моделі й закриває все більше типів навантаження:

* реляційні дані (SQL)
* документи (JSON)
* графи (SQL/PGQ)
* аналітика (OLAP)
* AI-векторні сценарії (через розширення)

Це означає, що одна база все частіше може замінити кілька спеціалізованих систем у проєкті.

## Висновок

PostgreSQL 19 - це ще один крок до того, щоб база даних стала універсальним інструментом для backend-розробки.

Для Laravel-розробників це особливо важливо:

* менше залежності від сторонніх баз
* більше можливостей "всередині SQL"
* простіша архітектура систем
* краща консистентність даних

PostgreSQL поступово перетворюється на платформу "все-в-одному" для даних - і це тренд, який точно варто враховувати в нових проєктах.
