Владимир Бородин - PostgreSQL

Preview:

Citation preview

Владимир БородинСистемный администратор

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Б

Спасибо

Recommended