минулій статті ми дізналися, як за допомогою утиліти pg_filedump можна відновити дані, або, принаймні якусь їх частину, повністю вбитої бази даних PostgreSQL. При цьому передбачалося, що ми звідки знаємо номери сегментів, що відповідають таблиці. Якщо ми знаємо частина вмісту таблиці, її сегменти дійсно не складно знайти, наприклад, простим grep'ом. Однак у більш загальному випадку це не так-то просто зробити. До того ж, передбачалося, що ми знаємо точну схему таблиць, що теж далеко не факт. Так от, нещодавно ми з колегами зробили новий патч для pg_filedump, що дозволяє розв'язати названі проблеми.
Читати далі →

Для роботи з PostgreSQL на мові С++, є чудова бібліотека libpq.
Бібліотека добре документована, є навіть повний переклад на російську мову, від компанії PostgresPRO.

При написанні серверного бекэнда, зіткнувся з тим, що в цій бібліотеці немає ніякого пулу коннектов, а робота з БД, передбачалася в досить інтенсивному режимі і одного конекту було явно мало. Щоразу встановлювати з'єднання для надсилання отриманих даних, було б просто безглуздям, оскільки з'єднання найдовша операція, вирішено було написати свій пул коннектов.

Читати далі →



Валентин Гогичашвили пояснює микросервисы. Перед вами розшифровка доповіді з Highload++.

Добрий день, я Валентин Гогичашвили. Всі слайди я зробив латиницею, сподіваюся не буде проблем. Я з Zalando.

Що таке Zalando? Напевно, ви знаєте Lamoda, Zalando був папою Lamoda свій час. Щоб зрозуміти, що таке Zalando, потрібно уявити Lamoda і збільшити в кілька разів.

Zalando – це магазин шмоток, ми почали продавати взуття, дуже гарну між іншим. Почали розширюватися все більше і більше. Зовні сайт виглядає дуже просто. За 6 років, що я працюю в Zalando і за 8 років існування — ця компанія була однією з найбільш зростаючих у Європі в якийсь час. Шість років тому, коли я прийшов в Zalando, вона росла десь 100%.

Читати далі →

Як писати криві запити з неоптимальним планом і змусити задуматися СУБД


Все просто. Тут можна знайти «Основи розбору запитів для чайників» у разі PostgreSQL та чудові невигадані приклади з продакшену про те, як не треба писати запити на PostgreSQL і MySQL і що буває, якщо їх так все-таки писати.


Читати далі →

Приклад відновлення PostgreSQL таблиць за допомогою нової мега фічі pg_filedump



Дозвольте я розповім вам про одну класної фиче, яку ми з колегами з Postgres Pro нещодавно запилили в утиліті pg_filedump. Ця фіча дозволяє частково відновлювати дані з бази, навіть у разі, якщо база була сильно пошкоджена і інстанси PostgreSQL з такою базою вже не запустиш. Звичайно, хочеться вірити, що потреба в такому функціоналі виникає вкрай рідко. Але на всякий випадок щось подібне хотілося б мати під рукою. Читайте далі, і ви дізнаєтеся, як ця фіча виглядає у дії.
Читати далі →

Гей, запит! Ти живий? Як легко обробити блокування в PostgreSQL

Добрий час доби! Адміністрування та супроводження реляційних баз даних найчастіше є нетривіальним завданням. Іноді запити, які працювали швидко, раптово починає «гальмувати» з незрозумілих причин, розмір таблиць зростає і в цілому продуктивність бази даних знижується.

Часто причиною такої поведінки є виникаючі в базі блокування різних ресурсів, і відповідно — виростає час очікування цих ресурсів. Наприклад, складнощі починаються в ситуаціях, коли два або більше запиту у різних сеансах намагаються змінити одні і ті ж дані в таблицях або саму структуру таблиці.

Щоб розібратися в ситуації, адміністратора БД необхідно зрозуміти, який блокує процес і який процес є блокованим, а також мати можливість скасувати або «вбити» блокуючий процес і в кінці перевірити результат.

У цій статті я хочу торкнутися теми блокувань в PostgreSQL та розповісти про інструменти для роботи з ними. Але спочатку спробуємо розібратися в самій темі.
Читати далі →

Зменшення обсягу, займаного даних PostgreSQL на диску

Зазвичай при складанні структур даних і таблиць ніхто не заморочується порядком стовпців. Власне, який у цьому сенс? При необхідності можна змінити порядок стовпців в SELECT, так про що турбуватися? Так от, є про що турбуватися, так як порядок стовпців може відчутно впливати на розмір таблиці. Так-так, розмір таблиці може залежати від порядку стовпців, навіть якщо дані одні і ті ж.

Читати далі →

Адреси ФІАС в середовищі PostgreSQL. Частина 4. ЕПІЛОГ

Це четверта і остання частина статті, яка містить приклади створення таблиці fias_AddressObjects в базі даних під керуванням PostgreSQL, а також завантаження даних про адреснообразующих елементах ФІАС. Після цих дій можна самостійно випробувати функції, розглянуті в першою, другий, третій частинах, скопіювавши і виконавши скрипти на їх створення.


Читати далі →

Адреси ФІАС в середовищі PostgreSQL. Частина 3

Це третя частина статті, в якій описана функція пошуку в списку адресообразующих
елементів ФІАС, завантажені в базу даних під управлінням PostgreSQL. Ось посилання на перший і другий частини.



Читати далі →

Адреси ФІАС в середовищі PostgreSQL. Частина 2

Це друга частина статті, в якій викладено досвід роботи зі списком адресообразующих елементів ФІАС, завантаженим в базу даних під управлінням PostgreSQL. З першою частиною статті можна ознайомитися тут.



Читати далі →