SlideShare a Scribd company logo
Использование
PostgreSQL в веб
приложениях
Котляр Иван
План выступления
● Что такое PostgreSQL
● Обзор возможностей
● Архитектура СУБД
● Репликация
● Партиционирование
● Мониторинг и Бэкапы
● Опыт использования
● Как начать использовать
Что такое PostgreSQL
● Объектно-реляционная СУБД
● Поддержка ANSI-SQL:2008
● Кросплатформенна
● Расширяема
● MVCC
● Хорошо подходит как для OLTP так и для OLAP нагрузки
Обзор возможностей
● json/jsonb
● Arrays
● User defined types
● btree, hash, gist, gin indexes
● Partial indexes, Indexes on Expressions
Обзор работы
Shared buffers
MVCC и транзакции
● Каждая транзакция работает со снимком - согласованные данные
на определенный момент времени
● При обновлении - старая версия строки помечается удалённой,
добавляется новая
● При удалении - старая версия строки помечается удалённой
● процесс autovacuum - подчищает старые версии строк (удаляет
физически)
● Read commited - уровень по умолчанию (отсутствует грязное
чтение)
Vacuum
1
2
3
1
2
3
Снимок
Исходная таблица
1
2
3
Снимок
А. Select... B. Update...
Vacuum
1
2
3
1
2
3
1.1
3.1
Снимок
Исходная таблица
1.1
2
3.1
Снимок
А. Select... B. Update...
Vacuum
1
2
3
1.1
3.1
2
1.1
3.1
Vacuum
Write Ahead Log
● Информация для повторного выполнения действий при
восстановлении
● Попадает на диск перед коммитом транзакции (но можно
асинхронно)
● После сброса грязных буферов на диск (chekpoint)
удаляется
● Используется при репликации
● Можно использовать для инкрементного бекапа
Репликация
Физическая репликация
Streaming replication
Hot standby
Archive
Преимущества и недостатки
Репликация
PostgreSQL
Master node
WAL
Wal
sender
Read / Write
PostgreSQL
Slave node
WAL
Read
Wal
receiver
Партиционирование
Мониторинг и бэкапы
zabbix
pg_stat_statements, pg_stat_plans, pgstattuple, pg_buffercache
postgresql log
Логический бекап: pg_dump, pg_restore
Физический бекап: pg_basebackup, непрерывная архивация
High availability cluster
Master-Slave репликация
Autofailover
Мониторинг
Инкрементный бэкап
pgbouncer, pgpool, repmgr, pghoard
Первоначальная настройка
● postgresql.conf
● max_connections, shared_buffers, work_mem,
maintenance_work_mem, effective_cache_size
● autovacuum_vacuum_scale_factor = 0.01
● autovacuum_vacuum_threshold = 50
● autovacuum_max_workers = 10
● autovacuum_naptime = 60
● autovacuum_analyze_scale_factor,
autovacuum_analyze_threshold
Самостоятельно изучение
Postgresql Professional:
DBA1, DBA2, Hacking Postgresql
PgDay, PgConf
Докладчики: Олег Бартунов, Илья Космодемьянский, Олег Царев
http://leopard.in.ua/
Документация

More Related Content

What's hot (19)

PDF
Testing with Selenium
OSLL
 
PDF
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Ontico
 
PPTX
Организация аппаратного поиска в таблицах OpenFlow на базе ПЛИС
ARCCN
 
PDF
Константин Осипов
CodeFest
 
PPTX
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Fuenteovejuna
 
PPTX
мониторинг производительности Web приложений на python
Slach
 
PDF
Kubasov 1 7_deploy
kuchinskaya
 
PDF
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
Ontico
 
PDF
Олег Бартунов и Иван Панченко
CodeFest
 
PDF
Живая миграция контейнеров: плюсы, минусы, подводные камни -- Павел Емельянов
OpenVZ
 
PPTX
Система обработки бизнес-логики server-side приложения на Groovy
Regn
 
PDF
Михаил Юматов: SaltStack
it-people
 
PPT
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
DevDay
 
PPTX
Современный graphql на бекенде и фронтенде. Тестирование, секьюрити, новые во...
Mad Devs
 
PDF
Путь к Go на конкретном примере
Sergey Xek
 
PDF
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
Nikolay Samokhvalov
 
PPT
Инструментация среды исполнения в арсенале тестировщика
SQALab
 
PPTX
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Ontico
 
PPTX
Первые шаги с RabbitMQ
Alexander Svetkin
 
Testing with Selenium
OSLL
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Ontico
 
Организация аппаратного поиска в таблицах OpenFlow на базе ПЛИС
ARCCN
 
Константин Осипов
CodeFest
 
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Fuenteovejuna
 
мониторинг производительности Web приложений на python
Slach
 
Kubasov 1 7_deploy
kuchinskaya
 
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
Ontico
 
Олег Бартунов и Иван Панченко
CodeFest
 
Живая миграция контейнеров: плюсы, минусы, подводные камни -- Павел Емельянов
OpenVZ
 
Система обработки бизнес-логики server-side приложения на Groovy
Regn
 
Михаил Юматов: SaltStack
it-people
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
DevDay
 
Современный graphql на бекенде и фронтенде. Тестирование, секьюрити, новые во...
Mad Devs
 
Путь к Go на конкретном примере
Sergey Xek
 
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
Nikolay Samokhvalov
 
Инструментация среды исполнения в арсенале тестировщика
SQALab
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Ontico
 
Первые шаги с RabbitMQ
Alexander Svetkin
 

Similar to Ivan Kotlyar. PostgreSQL in web applications (20)

PDF
Hacking PostgreSQL. Обзор архитектуры.
Anastasia Lubennikova
 
PDF
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
it-people
 
PDF
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
Ontico
 
PDF
Optimization of a big PostgreSQL database
Alex Chistyakov
 
ODP
Scaling PostgreSQL
Дмитрий Васильев
 
PDF
История небольшого успеха с PostgreSQL – Владимир Бородин
Yandex
 
PDF
Владимир Бородин - PostgreSQL
Yandex
 
PDF
Три вызова реляционным СУБД и новый PostgreSQL - #PostgreSQLRussia семинар по...
Nikolay Samokhvalov
 
PDF
Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...
Ontico
 
PDF
Postgresql v509
luis perez
 
PDF
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...
Badoo Development
 
PPTX
PostgreSQL. Стильно. Модно. Молодёжно
Vladislav Bezverhiy
 
PDF
Расширяемость PostgreSQL для хакеров и архитекторов / Олег Бартунов, Александ...
Ontico
 
PDF
История небольшого успеха с PostgreSQL
dev1ant
 
PDF
Краткий обзор новинок PostgreSQL 9.4 – Николай Самохвалов
Yandex
 
PDF
PostgreSQL Moscow Meetup - September 2014 - Nikolay Samokhvalov
Nikolay Samokhvalov
 
PDF
Введение в современную PostgreSQL. Часть 1
Dzianis Pirshtuk
 
ODP
SECON'2016. Сигаев Федор, Pg в кластере. Скандалы, интриги, расследования
SECON
 
PDF
Максим Богук. Postgres-XC
PostgreSQL-Consulting
 
Hacking PostgreSQL. Обзор архитектуры.
Anastasia Lubennikova
 
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
it-people
 
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
Ontico
 
Optimization of a big PostgreSQL database
Alex Chistyakov
 
История небольшого успеха с PostgreSQL – Владимир Бородин
Yandex
 
Владимир Бородин - PostgreSQL
Yandex
 
Три вызова реляционным СУБД и новый PostgreSQL - #PostgreSQLRussia семинар по...
Nikolay Samokhvalov
 
Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...
Ontico
 
Postgresql v509
luis perez
 
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...
Badoo Development
 
PostgreSQL. Стильно. Модно. Молодёжно
Vladislav Bezverhiy
 
Расширяемость PostgreSQL для хакеров и архитекторов / Олег Бартунов, Александ...
Ontico
 
История небольшого успеха с PostgreSQL
dev1ant
 
Краткий обзор новинок PostgreSQL 9.4 – Николай Самохвалов
Yandex
 
PostgreSQL Moscow Meetup - September 2014 - Nikolay Samokhvalov
Nikolay Samokhvalov
 
Введение в современную PostgreSQL. Часть 1
Dzianis Pirshtuk
 
SECON'2016. Сигаев Федор, Pg в кластере. Скандалы, интриги, расследования
SECON
 
Максим Богук. Postgres-XC
PostgreSQL-Consulting
 
Ad

More from DrupalSib (20)

PDF
SSO авторизация - Татьяна Киселева, DrupalJedi
DrupalSib
 
PDF
XML в крупных размерах - Михаил Крайнюк, DrupalJedi
DrupalSib
 
PPTX
BigPipe: ускоряем загрузку страниц - Давид Пашаев, DrupalJedi
DrupalSib
 
PDF
Drupal в школе - Борис Шрайнер
DrupalSib
 
PDF
Евгений Юдкин - Коммуникационные инструменты в отделе продаж на примере интег...
DrupalSib
 
PDF
D8 - Serialize, Normalize - Михаил Крайнюк, DrupalJedi
DrupalSib
 
PDF
Drupal - создание инсталляционных профайлов - Иван Абраменко, CimpleO
DrupalSib
 
PDF
Вадим Валуев - Искусство ИТ
DrupalSib
 
PDF
Андрей Юртаев - Mastering Views
DrupalSib
 
PDF
Migrate drupal 6 to drupal 8. Абраменко Иван
DrupalSib
 
PDF
Entity возрождение легенды. Исай Руслан
DrupalSib
 
PDF
возводим динамическую таблицу, No views, no problem. Крайнюк Михаил
DrupalSib
 
PDF
Реализация “гибких” списков Жамбалова Намжилма
DrupalSib
 
PDF
Петр Селфин. Шок! Drupal 8 против SEO?! Без регистрации и SMS скачать бесплатно
DrupalSib
 
PDF
Сергей Синица. Разработка интернет-магазинов на Drupal
DrupalSib
 
PDF
Eugene Ilyin. Why Drupal is cool?
DrupalSib
 
PDF
Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.
DrupalSib
 
PDF
Anton Shloma. Drupal as an integration platform
DrupalSib
 
PDF
Руслан Исай - Проповедуем Drupal разработку
DrupalSib
 
PDF
Сергей Черебедов - Integration Drupal with NodeJS. What is it and why You nee...
DrupalSib
 
SSO авторизация - Татьяна Киселева, DrupalJedi
DrupalSib
 
XML в крупных размерах - Михаил Крайнюк, DrupalJedi
DrupalSib
 
BigPipe: ускоряем загрузку страниц - Давид Пашаев, DrupalJedi
DrupalSib
 
Drupal в школе - Борис Шрайнер
DrupalSib
 
Евгений Юдкин - Коммуникационные инструменты в отделе продаж на примере интег...
DrupalSib
 
D8 - Serialize, Normalize - Михаил Крайнюк, DrupalJedi
DrupalSib
 
Drupal - создание инсталляционных профайлов - Иван Абраменко, CimpleO
DrupalSib
 
Вадим Валуев - Искусство ИТ
DrupalSib
 
Андрей Юртаев - Mastering Views
DrupalSib
 
Migrate drupal 6 to drupal 8. Абраменко Иван
DrupalSib
 
Entity возрождение легенды. Исай Руслан
DrupalSib
 
возводим динамическую таблицу, No views, no problem. Крайнюк Михаил
DrupalSib
 
Реализация “гибких” списков Жамбалова Намжилма
DrupalSib
 
Петр Селфин. Шок! Drupal 8 против SEO?! Без регистрации и SMS скачать бесплатно
DrupalSib
 
Сергей Синица. Разработка интернет-магазинов на Drupal
DrupalSib
 
Eugene Ilyin. Why Drupal is cool?
DrupalSib
 
Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.
DrupalSib
 
Anton Shloma. Drupal as an integration platform
DrupalSib
 
Руслан Исай - Проповедуем Drupal разработку
DrupalSib
 
Сергей Черебедов - Integration Drupal with NodeJS. What is it and why You nee...
DrupalSib
 
Ad

Ivan Kotlyar. PostgreSQL in web applications