PostgreSQL — база даних вашого сайту та магазину
Кожен товар, замовлення, лід і сторінка, які ви створюєте на 4buildsite, живуть у базі даних PostgreSQL. Вам не потрібно нею керувати, але варто знати, чому ми її обрали: транзакційна цілісність для платежів, надійність, підтверджена майже 30 роками, і нуль витрат на ліцензію у вашій ціні.
Що таке PostgreSQL і що вона зберігає у вашому сайті
PostgreSQL — це реляційна система керування базами даних із відкритим кодом, яка безперервно розвивається з 1996 року, а коріння її сягає проєкту POSTGRES в Університеті Берклі (1986). На 4buildsite PostgreSQL — це місце, де живуть дані вашого сайту: товари та залишки, замовлення й платежі, ліди з форм і контент сторінок. Ви працюєте у візуальному редакторі, а PostgreSQL надійно зберігає кожну зміну.
Чому це важливо для вас, якщо ви не програміст? Бо різницю між серйозною та крихкою базою даних видно саме у складні моменти: пік трафіку під час акції, платіж, повторений двічі, перезапуск сервера. PostgreSQL розроблена так, щоб проходити такі моменти без втрати чи пошкодження даних — тому її використовують у великих масштабах компанії на кшталт Instagram і Reddit, а історично на ній трималася інфраструктура Skype.
- Товари, варіанти та залишки — повний каталог вашого магазину
- Замовлення, платежі Stripe та рахунки — історія продажів без прогалин
- Ліди з форм — кожен запит комерційної пропозиції гарантовано збережено
- Контент сторінок і шаблонів — усе, що ви редагуєте у візуальному редакторі
- Домени, налаштування та опубліковані версії вашого сайту
Замовлення й платежі без пошкоджених даних — цілісність ACID
Коли клієнт оформлює замовлення, відбувається кілька речей одночасно: зменшується залишок, створюється замовлення, реєструється платіж Stripe. PostgreSQL виконує їх як одну транзакцію: або відбувається все, або нічого. Якщо платіж зривається посередині, залишок автоматично повертається до початкового значення. Така поведінка називається ACID (Atomicity, Consistency, Isolation, Durability), і PostgreSQL гарантує її для будь-якої таблиці без спеціальних налаштувань.
Окрім транзакцій, PostgreSQL накладає правила цілісності безпосередньо в базі даних: рядок замовлення не може посилатися на неіснуючий товар, залишок не може стати від'ємним, email облікового запису не може задублюватися. Ці обмеження (зовнішні ключі, check, unique) зупиняють хибні дані ще до того, як вони потраплять у базу, а не після того, як зіпсують ваш звіт про продажі.
Для маркетплейсів цілісність важлива вдвічі: комісії та платежі, розділені через Stripe Connect, розраховуються з даних замовлення. Дубльоване замовлення чи неузгоджена сума означали б неправильно розподілені гроші між продавцями. Транзакції PostgreSQL зберігають ці розрахунки коректними, замовлення за замовленням.
Пошук у каталозі та гнучкий контент
PostgreSQL містить повнотекстовий пошуковий рушій: клієнти шукають «кросівки для бігу» й знаходять відповідні товари, зі словниками стемінгу, зокрема для румунської мови. Розширення pg_trgm додає стійкість до помилок друку. Для магазину це означає, що по каталогу можна якісно шукати без окремого сервісу на кшталт Elasticsearch — тобто менше компонентів, які можуть вийти з ладу, і нижчі інфраструктурні витрати.
Контент сторінок, створених у візуальному редакторі, не має фіксованої структури: блок hero, форма та галерея мають різні поля. PostgreSQL розв'язує це через JSONB: зберігає нативний JSON, який можна індексувати індексами GIN і запитувати як будь-яку колонку. Ви отримуєте гнучкість документної бази даних, але зберігаєте реляційну цілісність для замовлень і платежів — в одній системі, а не у двох.
- tsvector + словники стемінгу (румунська включно) — релевантний пошук у каталозі
- pg_trgm — клієнти знаходять товар, навіть якщо помилилися в одній літері
- JSONB з індексами GIN — гнучкі блоки сторінок залишаються швидкими для запитів
Надійність: бекап, відновлення та жодних сюрпризів
PostgreSQL записує кожну зміну спочатку в журнал (WAL — Write-Ahead Log) і лише потім у самі дані. Якщо сервер раптово зупиняється, після перезапуску база даних відновлюється з журналу без пошкоджених даних. На тому самому механізмі PostgreSQL будує й відновлення на момент часу (PITR) — стандартну можливість рушія для інсталяцій, що архівують журнал WAL. На 4buildsite дані зберігаються на постійних томах, відокремлених від застосунку, тож перезапуск чи оновлення платформи їх не зачіпає.
PostgreSQL також підтримує потокову реплікацію — синхронізовану копію бази даних, готову за потреби прийняти трафік. Для вашого сайту надійність бази даних напряму перетворюється на SEO та GEO: сайт, що відповідає стабільно, стабільно краулиться й індексується, а повторювані помилки 5xx ускладнюють crawl і індексацію.
Масштабування та вартість — зростайте без рахунків за ліцензії
Коли магазин зростає, PostgreSQL зростає разом із ним: індекси забезпечують швидкі запити на каталогах із сотнями тисяч товарів, партиціонування розподіляє історію замовлень за періодами, а репліки для читання беруть на себе трафік звітів. Instagram і Reddit масштабувалися на PostgreSQL до сотень мільйонів користувачів — інтернет-магазин досягає меж цієї технології набагато пізніше, ніж вважає.
PostgreSQL має вільну ліцензію (PostgreSQL License, типу BSD) — без витрат на ліцензію й без комерційного власника, який може змінити правила за одну ніч. Комерційні бази даних зазвичай ліцензуються за кожне процесорне ядро, і ця вартість неминуче потрапляє в ціну, яку платить клієнт. На 4buildsite база даних входить у план разом із хостингом і SSL — без жодної окремої плати.
Переваги та обмеження
Переваги
- Повноцінні транзакції ACID — замовлення й платежі залишаються узгодженими навіть при помилках чи збоях сервера.
- Надійність, перевірена з 1996 року, у продакшені в Instagram, Reddit та, історично, Skype.
- Нативний JSONB — гнучкий контент сторінок без шкоди для реляційної цілісності.
- Вбудований повнотекстовий пошук зі стемінгом для румунської — пошук у каталозі без окремого сервісу.
- Вільна ліцензія — жодних прихованих витрат на ліцензію в ціні вашого плану.
- Журнал WAL — при раптовій зупинці сервера база даних відновлюється після перезапуску без пошкоджених даних.
Обмеження
- Просунуте адміністрування (тюнінг, реплікація, failover) потребує досвіду — на 4buildsite ми робимо це самі, але self-hosted вимогливе.
- Запис відбувається на одному первинному вузлі — розподіл на кілька вузлів (шардинг) не є нативним і потребує додаткових інструментів.
- Кожне з'єднання споживає відносно багато пам'яті — за великої кількості з'єднань потрібен пулінг (PgBouncer).
- Повнотекстовий пошук добрий, але поступається спеціалізованим рушіям за просунутою релевантністю та підказками пошуку.
Короткий висновок
PostgreSQL — стандартний вибір для сайтів, інтернет-магазинів, маркетплейсів і SaaS-платформ, де замовлення, платежі та ліди не можна втрачати. Простому блогу вистачило б і меншого, але вільна ліцензія означає, що на 4buildsite ви все одно отримуєте такий рівень безпеки без додаткових витрат.
Таблиця специфікацій
| Можливість | Обмеження / поріг | Типове використання | |
|---|---|---|---|
| Транзакційна цілісність | Повний ACID + MVCC на будь-якій таблиці | Дуже довгі транзакції тримають ресурси заблокованими | Замовлення, платежі, залишки |
| JSONB | Нативний JSON, індексується через GIN | Дуже складні запити до JSON повільніші, ніж до класичних колонок | Контент сторінок, налаштування, атрибути товарів |
| Повнотекстовий пошук | tsvector + pg_trgm, багатомовний (румунська включно) | Релевантність нижча, ніж у спеціалізованих пошукових рушіїв | Пошук у каталозі магазину |
| Бекап і реплікація | WAL, PITR, потокова реплікація | Автоматичний failover потребує зовнішніх інструментів (напр. Patroni) | Відновлення після інцидентів, висока доступність |
| Масштабування | Репліки для читання, партиціонування таблиць | Запис залишається на первинному вузлі | Великі каталоги та історія замовлень |
| Вартість | Відкритий код, вільна ліцензія | Реальна вартість — інфраструктура й адміністрування | Входить у плани 4buildsite |
PostgreSQL проти MySQL проти MongoDB
| Критерій | PostgreSQL | MySQL | MongoDB |
|---|---|---|---|
| Цілісність ACID | Повна, на будь-якій таблиці, за замовчуванням | Повна лише з рушієм InnoDB | Транзакції з кількома документами лише з v4.0, з обмеженнями |
| Типи даних і JSON | JSONB з індексацією + багаті типи (array, range) | Валідний JSON, непряма індексація (згенеровані колонки) | Нативні документи BSON, без обов'язкової схеми |
| Повнотекстовий пошук | Вбудований: tsvector, pg_trgm, багатомовний стемінг | Базовий (InnoDB FTS) | Базовий; просунутий варіант (Atlas Search) лише в комерційній хмарі |
| Ліцензія / вартість | PostgreSQL License — вільна, без комерційного власника | GPL, належить Oracle (комерційні редакції) | SSPL — це вже не класична open-source ліцензія |
| Екосистема | Потужні розширення (PostGIS, pgvector), підтримка в усіх ORM | Всюдисуща в класичному PHP/WordPress-хостингу | Сильна в Node.js, вужча в решті середовищ |
| Придатність для e-commerce | Відмінна — замовлення, залишки й платежі гарантовано узгоджені | Хороша — історичний стандарт (Magento, WooCommerce) | Для гнучких каталогів; узгодженість замовлень потребує додаткових зусиль |
Поширені запитання
Чи впливає PostgreSQL на швидкість сайту?
Публічні сторінки віддаються з Next.js із кешем, а запити до індексованих таблиць використовують індекси. За розміру типового сайту чи магазину база даних зазвичай не стає вузьким місцем — для сприйманої швидкості набагато важливіші фронтенд і зображення.
Чому не WordPress із MySQL, як усі?
WordPress — це PHP-CMS із темами й плагінами, які треба постійно підтримувати й оновлювати. 4buildsite генерує сайти на Next.js із PostgreSQL: швидші, без плагінів, які треба латати, і з меншою кількістю вразливостей. MySQL — не поганий вибір, але PostgreSQL додає індексований JSONB, кращий повнотекстовий пошук і суворішу цілісність, за тієї самої вільної ліцензії.
Що станеться з моїми даними, якщо сервер зламається?
PostgreSQL записує кожну зміну спершу в журнал WAL, тож після перезапуску база даних відновлюється без пошкоджених даних — раптовий збій сервера не псує ваші замовлення. До того ж дані зберігаються на постійних томах, відокремлених від застосунку, тож перезапуск чи оновлення платформи їх не зачіпає.
Чи можу я експортувати свої дані, якщо піду з 4buildsite?
Так. Ваші дані зберігаються в PostgreSQL — стандартному для індустрії форматі: товари, замовлення й клієнтів можна експортувати у поширені формати (CSV, SQL). Немає пропрієтарного формату, який прив'язував би вас до платформи.
Чи впорається PostgreSQL, якщо мій магазин зростатиме?
Так, із дуже великим запасом. Instagram і Reddit масштабувалися на PostgreSQL до сотень мільйонів користувачів, використовуючи індекси, партиціонування та репліки для читання — ті самі техніки доступні й на 4buildsite. Інтернет-магазин досягає меж PostgreSQL набагато пізніше, ніж меж власної логістики.
Скільки мені коштує ліцензія PostgreSQL?
Нічого. PostgreSQL має вільну ліцензію (PostgreSQL License, типу BSD) без плати за сервер чи за ядро. На 4buildsite база даних входить у ваш план разом із хостингом і SSL — окремо за неї ви нічого не платите.