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