Владимир Бородин Системный администратор PostgreSQL
3 Черновой список тем для КИТ 5 • Универсальная реляционная транзакционная СУБД Oracle • Легковесная реляционная высокопроизводительная СУБД MySQL • PostgreSQL • Документо-ориентированная горизонтально масштабируемая NoSQL СУБД MongoDB
4 The world's most advanced open source database
5 Немного истории • С 1973 года Ingres (Стоунбрейкер и Вон) • С 1986 года Postgres (Post Ingres) • В 1997 году Postgres95 переименован в PostgreSQL
6 Архитектура PostgreSQL
7 Postmaster
8 Backend. Чтение данных
9 Backend. Запись данных
10 Backend. Обработка запроса
11 Checkpointer
12 Startup process
13 Autovacuum
14 Bgwriter
15 Дополнительные процессы • WAL writer Не трогают разделяемую память: • Stats collector • Logging collector • WAL archiver
Feature set
17 Надёжность • Зрелая СУБД • Отличная кодовая база • Грамотная архитектура • Community
18 Отказоустойчивость • Write ahead logging • Crash recovery • Поточная репликация: – Асинхронная/синхронная – Каскадная • Логическая репликация (с 9.4) • Горячие бэкапы • PITR
19 Масштабирование. Postgres-XL
20 Масштабирование. PL/Proxy
21 Производительность • MVCC • Процессная модель хорошо масштабируется на много процессоров/ядер • Легко убивает дисковую подсистему
22 Производительность на нашей нагрузке • Oracle – 12K rps – CPU • PostgreSQL – 3K rps – I/O • MySQL – 1K rps – I/O
23 Совместимость • Совместимость с ANSI SQL:2011 • Честный ACID
24 Расширяемость • Операторы • Типы данных • Функции • Access methods • Процедурные языки • Индексы • Расширения
25 Типы данных • Стандартные • Геометрические (points, lines, boxes, paths, polygons, …) • Сетевые адреса (inet, cidr, macaddr) • UUID • JSON • Композитные типы • Range-типы • ARRAY • Битовые строки • Текстовый поиск (tsvector, tsquery) • ISBN • XML
26 Процедурные языки • PL/pgSQL • PL/Tcl • PL/Perl • PL/Python • PL/Java • PL/PHP • PL/Py • PL/R • PL/Ruby • PL/Scheme • PL/sh
27 Индексы • Типы: – Compound – Unique – Partial – Functional • Access methods: – B-Tree – R-Tree – Hash – GIST – SP-GiST – GIN – VODKA (с 9.5) • GIN • PostGIS • OpenFTS • BRIN (с 9.5)
28 Foreign data wrappers • PostgreSQL • Oracle • MongoDB • MySQL • Redis • Neo4j • File • ODBC/JDBC • Hadoop
29 contrib • pg_stat_statements • pg_buffercache • pg_prewarm • pgbench • pg_upgrade • autoexplain • pg_crypto • pg_rewind • ...
30 Другие особенности • Table inheritance – Так работает partitioning – http://www.postgresql.org/message-id/20140829155607.GF7705@eldon.alvh.no-ip.org • Event system (LISTEN/NOTIFY)
31 Сравнение с другими СУБД. Разработка
32 Сравнение с другими СУБД. Поддерживаемые платформы
33 Сравнение с другими СУБД. Фундаментальные возможности
34 Сравнение с другими СУБД. Ограничения
35 Сравнение с другими СУБД. Таблицы и представления
36 Сравнение с другими СУБД. Индексы
37 Сравнение с другими СУБД. Database capabilities
38 Сравнение с другими СУБД. Другие объекты
39 Сравнение с другими СУБД. Партиционирование
40 Сравнение с другими СУБД. Контроль доступа
41 Почитать • http://www.postgresql.org/docs/current/static/index.html • find src -name README • http://www.postgresql.org/about/featurematrix/
Владимир Бородин Системный администратор +7 495 739-70-00 (доб. 7255) d0uble@yandex-team.ru 119021, Москва, ул. Льва Толстого, 18Б Спасибо

PostgreSQL