Владимир Бородин - postgresql
TRANSCRIPT
Владимир БородинСистемный администратор
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/[email protected]
• 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)
119021, Москва, ул. Льва Толстого, 18Б
Спасибо