Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Использование
PostgreSQL в веб
приложениях
Котляр Иван
План выступления
● Что такое PostgreSQL
● Обзор возможностей
● Архитектура СУБД
● Репликация
● Партиционирование
● Монитор...
Что такое PostgreSQL
● Объектно-реляционная СУБД
● Поддержка ANSI-SQL:2008
● Кросплатформенна
● Расширяема
● MVCC
● Хорошо...
Обзор возможностей
● json/jsonb
● Arrays
● User defined types
● btree, hash, gist, gin indexes
● Partial indexes, Indexes ...
Обзор работы
Shared buffers
MVCC и транзакции
● Каждая транзакция работает со снимком - согласованные данные
на определенный момент времени
● При обно...
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
● Информация для повторного выполнения действий при
восстановлении
● Попадает на диск перед коммитом транз...
Репликация
Физическая репликация
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
Логический бекап:...
High availability cluster
Master-Slave репликация
Autofailover
Мониторинг
Инкрементный бэкап
pgbouncer, pgpool, repmgr, pg...
Первоначальная настройка
● postgresql.conf
● max_connections, shared_buffers, work_mem,
maintenance_work_mem, effective_ca...
Самостоятельно изучение
Postgresql Professional:
DBA1, DBA2, Hacking Postgresql
PgDay, PgConf
Докладчики: Олег Бартунов, И...
Upcoming SlideShare
Loading in …5
×

Ivan Kotlyar. PostgreSQL in web applications

235 views

Published on

Как устроен и работает PostgreSQL, его основных отличиях и преимуществах перед MySQL.

How PostgreSQL is arranged and worked, its main differences and advantages over MySQL.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Ivan Kotlyar. PostgreSQL in web applications

  1. 1. Использование PostgreSQL в веб приложениях Котляр Иван
  2. 2. План выступления ● Что такое PostgreSQL ● Обзор возможностей ● Архитектура СУБД ● Репликация ● Партиционирование ● Мониторинг и Бэкапы ● Опыт использования ● Как начать использовать
  3. 3. Что такое PostgreSQL ● Объектно-реляционная СУБД ● Поддержка ANSI-SQL:2008 ● Кросплатформенна ● Расширяема ● MVCC ● Хорошо подходит как для OLTP так и для OLAP нагрузки
  4. 4. Обзор возможностей ● json/jsonb ● Arrays ● User defined types ● btree, hash, gist, gin indexes ● Partial indexes, Indexes on Expressions
  5. 5. Обзор работы
  6. 6. Shared buffers
  7. 7. MVCC и транзакции ● Каждая транзакция работает со снимком - согласованные данные на определенный момент времени ● При обновлении - старая версия строки помечается удалённой, добавляется новая ● При удалении - старая версия строки помечается удалённой ● процесс autovacuum - подчищает старые версии строк (удаляет физически) ● Read commited - уровень по умолчанию (отсутствует грязное чтение)
  8. 8. Vacuum 1 2 3 1 2 3 Снимок Исходная таблица 1 2 3 Снимок А. Select... B. Update...
  9. 9. Vacuum 1 2 3 1 2 3 1.1 3.1 Снимок Исходная таблица 1.1 2 3.1 Снимок А. Select... B. Update...
  10. 10. Vacuum 1 2 3 1.1 3.1 2 1.1 3.1 Vacuum
  11. 11. Write Ahead Log ● Информация для повторного выполнения действий при восстановлении ● Попадает на диск перед коммитом транзакции (но можно асинхронно) ● После сброса грязных буферов на диск (chekpoint) удаляется ● Используется при репликации ● Можно использовать для инкрементного бекапа
  12. 12. Репликация Физическая репликация Streaming replication Hot standby Archive Преимущества и недостатки
  13. 13. Репликация PostgreSQL Master node WAL Wal sender Read / Write PostgreSQL Slave node WAL Read Wal receiver
  14. 14. Партиционирование
  15. 15. Мониторинг и бэкапы zabbix pg_stat_statements, pg_stat_plans, pgstattuple, pg_buffercache postgresql log Логический бекап: pg_dump, pg_restore Физический бекап: pg_basebackup, непрерывная архивация
  16. 16. High availability cluster Master-Slave репликация Autofailover Мониторинг Инкрементный бэкап pgbouncer, pgpool, repmgr, pghoard
  17. 17. Первоначальная настройка ● 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
  18. 18. Самостоятельно изучение Postgresql Professional: DBA1, DBA2, Hacking Postgresql PgDay, PgConf Докладчики: Олег Бартунов, Илья Космодемьянский, Олег Царев http://leopard.in.ua/ Документация

×