Postgres. Начало.
Кто использует
Инструменты ● PhpStorm, PyCharm, DataGrip ● Sublime Text, Atom, vim ● PgAdmin3 ● PhpPGAdmin/pgAdmin4 ● psql
Psql
Репликация
Оптимизатор запросов ● Оптимизатор всегда прав ● Множество индексов ● Понятный анализатор
Типы данных ● Числовые, символьные, бинарные, дата/время/интервал ● Перечисления, сетевые адреса, битовые маски, UUID, денежный ● JSON, XML, массивы, составные ● Геометрические (PostGIS) ● Пользовательские типы
Расширения ● Встроенные функции для работы с массивами, словарями, JSON ● PostGIS ● PostgREST ● PL/pgSQL, PL/Python, PL/V8, PL/PHP, PL/Java…
Внешние источники данных
DDL ● Транзакционный DDL ● Неблокирующие индексы ● Частичные индексы ● Индексируемый JSON ● Наследование таблиц
Ограничение прав пользователей ● Авторизация через LDAP, Radius, PAM, SSL ● Пользователи, группы, роли ● Row level security pg_hba.conf < host all all 0.0.0.0 trust
Autovacuum rownum id airpost_code airport_name 62940582 14 DME Домодедово 62940583 15 DYR Анадырь 62940584 16 EGO Белгород
Autovacuum rownum id airpost_code airport_name 62940582 14 DME Домодедово 62940583 15 DYR Анадырь 62940584 16 EGO Белгород 62940585 15 AND Анадырь
Autovacuum rownum id airpost_code airport_name 62940582 14 DME Домодедово 62940583 15 DYR Анадырь 62940584 16 EGO Белгород 62940585 15 AND Анадырь Index
Postgres Pro ● Полностью переведённая документация — https://postgrespro.ru/docs. ● Становимся контрибьютером - https://habrahabr.ru/company/postgrespro/blog/308442/ ● Hacking Postgres - https://postgrespro.ru/education/courses/hacking ● Курсы по администрированию - https://postgrespro.ru/education/courses/DBA1 и https://postgrespro.ru/education/courses/DBA2 ● Планы разработок - https://postgrespro.ru/roadmap
Недостатки ● Отсутствие пула соединений ● Скорость записи ● Отсутствие поддержки на хостинге или в CMS
Где НЕ надо использовать ● Кэширование ● Брокер сообщений ● Сбор логов ● Не нужны транзакции, внешние ключи, полнотекстовый поиск... ● Если ваши инструменты не поддерживают postgres
Ссылки ● 7 баз данных за 7 недель - http://www.ozon.ru/context/detail/id/19383907/ ● CAP-теорема - https://habrahabr.ru/post/130577/ ● Блокировки в MongoDB - https://docs.mongodb.com/manual/faq/concurrency/ ● Eventually consistent - https://habrahabr.ru/post/100891/ ● Riak - https://habrahabr.ru/post/75202/ ● PHP PDO - https://habrahabr.ru/post/137664/ ● Список GUI - https://wiki.postgresql.org/wiki/Community_Guide_to_PostgreSQL_GUI_Tools ● Работаем с Postgres из psql - https://tyvik.ru/blog/247 ● PostgreSQL vs MySQL - https://habrahabr.ru/company/mailru/blog/248845/ ● Асинхронная репликация без цензуры - https://habrahabr.ru/company/oleg-bunin/blog/313594/ ● Сага о кластере - https://habrahabr.ru/company/oleg-bunin/blog/312494/ ● Шардинг и репликация - http://eax.me/stolon/ и http://eax.me/sharding/ ● Uber перешёл на MySQL - https://yarfullstack.com/post/2016-07/Uber-Postgres+MySQL/ ● Oracle расказывает о недостатках Postgres - https://geektimes.ru/post/272818/ ● Из Oracle да в Postgres - https://habrahabr.ru/post/216057/ ● Доклады с HighLoad++ - https://habrahabr.ru/company/oleg-bunin/blog/268485/
Вопросы?

Postgres

  • 1.
  • 3.
  • 4.
    Инструменты ● PhpStorm, PyCharm,DataGrip ● Sublime Text, Atom, vim ● PgAdmin3 ● PhpPGAdmin/pgAdmin4 ● psql
  • 9.
  • 11.
  • 12.
    Оптимизатор запросов ● Оптимизаторвсегда прав ● Множество индексов ● Понятный анализатор
  • 13.
    Типы данных ● Числовые,символьные, бинарные, дата/время/интервал ● Перечисления, сетевые адреса, битовые маски, UUID, денежный ● JSON, XML, массивы, составные ● Геометрические (PostGIS) ● Пользовательские типы
  • 14.
    Расширения ● Встроенные функциидля работы с массивами, словарями, JSON ● PostGIS ● PostgREST ● PL/pgSQL, PL/Python, PL/V8, PL/PHP, PL/Java…
  • 15.
  • 16.
    DDL ● Транзакционный DDL ●Неблокирующие индексы ● Частичные индексы ● Индексируемый JSON ● Наследование таблиц
  • 17.
    Ограничение прав пользователей ●Авторизация через LDAP, Radius, PAM, SSL ● Пользователи, группы, роли ● Row level security pg_hba.conf < host all all 0.0.0.0 trust
  • 18.
    Autovacuum rownum id airpost_codeairport_name 62940582 14 DME Домодедово 62940583 15 DYR Анадырь 62940584 16 EGO Белгород
  • 19.
    Autovacuum rownum id airpost_codeairport_name 62940582 14 DME Домодедово 62940583 15 DYR Анадырь 62940584 16 EGO Белгород 62940585 15 AND Анадырь
  • 20.
    Autovacuum rownum id airpost_codeairport_name 62940582 14 DME Домодедово 62940583 15 DYR Анадырь 62940584 16 EGO Белгород 62940585 15 AND Анадырь Index
  • 21.
    Postgres Pro ● Полностьюпереведённая документация — https://postgrespro.ru/docs. ● Становимся контрибьютером - https://habrahabr.ru/company/postgrespro/blog/308442/ ● Hacking Postgres - https://postgrespro.ru/education/courses/hacking ● Курсы по администрированию - https://postgrespro.ru/education/courses/DBA1 и https://postgrespro.ru/education/courses/DBA2 ● Планы разработок - https://postgrespro.ru/roadmap
  • 22.
    Недостатки ● Отсутствие пуласоединений ● Скорость записи ● Отсутствие поддержки на хостинге или в CMS
  • 23.
    Где НЕ надоиспользовать ● Кэширование ● Брокер сообщений ● Сбор логов ● Не нужны транзакции, внешние ключи, полнотекстовый поиск... ● Если ваши инструменты не поддерживают postgres
  • 24.
    Ссылки ● 7 базданных за 7 недель - http://www.ozon.ru/context/detail/id/19383907/ ● CAP-теорема - https://habrahabr.ru/post/130577/ ● Блокировки в MongoDB - https://docs.mongodb.com/manual/faq/concurrency/ ● Eventually consistent - https://habrahabr.ru/post/100891/ ● Riak - https://habrahabr.ru/post/75202/ ● PHP PDO - https://habrahabr.ru/post/137664/ ● Список GUI - https://wiki.postgresql.org/wiki/Community_Guide_to_PostgreSQL_GUI_Tools ● Работаем с Postgres из psql - https://tyvik.ru/blog/247 ● PostgreSQL vs MySQL - https://habrahabr.ru/company/mailru/blog/248845/ ● Асинхронная репликация без цензуры - https://habrahabr.ru/company/oleg-bunin/blog/313594/ ● Сага о кластере - https://habrahabr.ru/company/oleg-bunin/blog/312494/ ● Шардинг и репликация - http://eax.me/stolon/ и http://eax.me/sharding/ ● Uber перешёл на MySQL - https://yarfullstack.com/post/2016-07/Uber-Postgres+MySQL/ ● Oracle расказывает о недостатках Postgres - https://geektimes.ru/post/272818/ ● Из Oracle да в Postgres - https://habrahabr.ru/post/216057/ ● Доклады с HighLoad++ - https://habrahabr.ru/company/oleg-bunin/blog/268485/
  • 25.