Top Banner
PostgreSQL PostgreSQL PostgreSQL 8.1 8.1 и дальше ... и дальше ... Олег Бартунов, Федор Сигаев ГАИШ МГУ
37

PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

Jan 29, 2016

Download

Documents

Maria Jennings
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

PostgreSQL PostgreSQL 8.18.1

и дальше ...и дальше ...Олег Бартунов, Федор Сигаев

ГАИШ МГУ

Page 2: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

PostgreSQL - это свободно распространяемая объектно-реляционная система управления базами данных (ORDBMS), наиболее развитая из открытых СУБД в мире и являющаяся реальной альтернативой коммерческим базам данных.

Page 3: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

PostgreSQL произносится как post-gress-Q-L В разговоре часто употребляется postgres (пост-гресс). Также, употребляется сокращение pgsql (пэ-жэ-эс-ку-эль).

Page 4: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQLГенеалогия реляционных СУБД

Page 5: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQLСравнение функциональности некоторых СУБД

Page 6: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Некоторые ограничения PostgreSQL

Page 7: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQLMailing lists & IRCMailing lists & IRC

● Списки рассылки :Списки рассылки :

http://www.postgresql.org/community/lists/subscribehttp://www.postgresql.org/community/lists/subscribe

Большой траффикБольшой траффик

Высокий уровень профессиональностиВысокий уровень профессиональности

Дружественное отношениеДружественное отношение

● Архивы доступны:Архивы доступны:

http://archives.postgresql.org/

http://www.pgsql.ru/db/mw/http://www.pgsql.ru/db/mw/

● IRC: irc.freenode.net/#postgresqlIRC: irc.freenode.net/#postgresql

Уникальное сочетание компетентности и Уникальное сочетание компетентности и дружественностидружественности

● pgsql-adminpgsql-admin● pgsql-advocacypgsql-advocacy● pgsql-announcepgsql-announce● pgsql-bugspgsql-bugs● pgsql-docspgsql-docs● pgsql-generalpgsql-general● pgsql-hackerspgsql-hackers● pgsql-interfacespgsql-interfaces● pgsql-jdbcpgsql-jdbc● pgsql-novicepgsql-novice● pgsql-odbcpgsql-odbc● pgsql-pgsql-● performanceperformance● pgsql-phppgsql-php● pgsql-sqlpgsql-sql

Page 8: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQLWeb resourcesWeb resources

● http://techdocs.postgresql.org/http://techdocs.postgresql.org/ Технические статьи Технические статьи

● General Bits by A. Elein MustainGeneral Bits by A. Elein Mustain http://www.varlena.com/GeneralBitshttp://www.varlena.com/GeneralBits Еженедельное обозрение pgsql-generalЕженедельное обозрение pgsql-general

● PGSearch:PGSearch: http://www.pgsql.ru/db/pgsearchhttp://www.pgsql.ru/db/pgsearch Поисковая система по ресурсам PostgreSQLПоисковая система по ресурсам PostgreSQL

Page 9: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQLhttp://pgfoundry.orghttp://pgfoundry.org

Page 10: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQLhttp://gborg.postgresql.org/http://gborg.postgresql.org/

Page 11: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQLpgAdmin IIIpgAdmin III

● Freely available Freely available graphical administration graphical administration application for application for PostgreSQLPostgreSQL

● Runs on:Runs on: Linux,Linux, FreeBSD & FreeBSD & WindowsWindows

● Version 1.2 supports 8.0Version 1.2 supports 8.0

Page 12: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQLpgAdmin IIIpgAdmin III

Page 13: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQLphpPgAdminphpPgAdmin

Page 14: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

PostgreSQL 8 работает в “native” режиме PostgreSQL 8 работает в “native” режиме под Windows 2000, XP and 2003под Windows 2000, XP and 2003

● Может работать как службаМожет работать как служба● InstallerInstaller

Page 15: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL● Включает дополнительные модули:Включает дополнительные модули:

NpgsqlNpgsql JDBCJDBC psqlODBCpsqlODBC pgAdmin IIIpgAdmin III

Page 16: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Page 17: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что нового в Что нового в PostgreSQL PostgreSQL

8.1 ?8.1 ?

Page 18: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что нового в PostgreSQL 8.1 ?Что нового в PostgreSQL 8.1 ?● SQLSQL● Двухфазный коммит (2PC) Двухфазный коммит (2PC) ● PREPARE TRANSACTION PREPARE TRANSACTION ● COMMIT PREPAREDCOMMIT PREPARED● ROLLBACK PREPAREDROLLBACK PREPARED● JDBC драйвер поддержка XA (JTA)JDBC драйвер поддержка XA (JTA)

Page 19: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что нового в PostgreSQL 8.1?Что нового в PostgreSQL 8.1?● SQLSQL● Роли вместо пользователй и группРоли вместо пользователй и групп● Управление доступом к объектам базыУправление доступом к объектам базы● Database, table, function, language, schema,Database, table, function, language, schema,● Tablespace, roleTablespace, role● Роли могут принадлежать другим ролямРоли могут принадлежать другим ролям● Роли могут быть владельцами объектовРоли могут быть владельцами объектов● Роли могут наследоватьсяРоли могут наследоваться● ALTER ROLE myname SET enable_indexscan TO off;ALTER ROLE myname SET enable_indexscan TO off;

Page 20: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что нового в PostgreSQL 8.1?Что нового в PostgreSQL 8.1?● Very large DatabaseVery large Database● Bitmap index (in memory)Bitmap index (in memory)● Оптимизация работы с несколькими Оптимизация работы с несколькими

индексами индексами ● Bitmap Index Scan – Bitmap Heap ScanBitmap Index Scan – Bitmap Heap Scan● GUC параметр: enable_bitmapscanGUC параметр: enable_bitmapscan

Page 21: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Q3C sky indexing algorithmQ3C sky indexing algorithm● SAI Catalog Access ServicesSAI Catalog Access Services

Page 22: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Q3C Sky indexing algorithmQ3C Sky indexing algorithm

Page 23: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что нового в PostgreSQL 8.1 ?Что нового в PostgreSQL 8.1 ?● Very Large DatabaseVery Large Database● Table Partitioning Table Partitioning ● Наследование таблиц – table inheritanceНаследование таблиц – table inheritance● Улучшение в планировщикеУлучшение в планировщике● CONSTRAIN EXCLUSIONCONSTRAIN EXCLUSION● GUC параметр: constraint_exclusion (off)GUC параметр: constraint_exclusion (off)

Page 24: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что нового в PostgreSQL 8.1 ?Что нового в PostgreSQL 8.1 ?● Table Partitioning (Пример)Table Partitioning (Пример)● Создаем таблицыСоздаем таблицы

create table a ( i int primary key);create table a1( check (i >=0 and i<=2000) ) inherits(a);create table a2( check (i >=2001 and i<=4000) ) inherits(a);create table a3( check (i >=4001 and i<=6000) ) inherits(a);create index a1_idx on a1(i);create index a2_idx on a2(i);create index a3_idx on a3(i);

Page 25: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что нового в PostgreSQL 8.1 ?Что нового в PostgreSQL 8.1 ?● Table PartitioningTable Partitioning● Заполняем таблицыЗаполняем таблицы

for ((i=0;i<2000;i++)) do echo $i; done| psql test -c "copy a1 from stdin;"for ((i=2001;i<4000;i++)) do echo $i; done| psql test -c "copy a2 from stdin;"for ((i=4001;i<6000;i++)) do echo $i; done| psql test -c "copy a3 from stdin;"

Page 26: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что нового в PostgreSQL 8.1 ?Что нового в PostgreSQL 8.1 ?● Table PartitioningTable Partitioning● Без CONSTRAINT EXCLUSIONБез CONSTRAINT EXCLUSION

test=# explain select * from a where i = 10; QUERY PLAN Result (cost=0.00..42.70 rows=34 width=4) -> Append (cost=0.00..42.70 rows=34 width=4) -> Index Scan using a_pkey on a (cost=0.00..4.82 rows=1 width=4) Index Cond: (i = 10) -> Bitmap Heap Scan on a1 a (cost=2.04..12.63 rows=11 width=4) Recheck Cond: (i = 10) -> Bitmap Index Scan on a1_idx (cost=0.00..2.04 rows=11 width=0) Index Cond: (i = 10) -> Bitmap Heap Scan on a2 a (cost=2.04..12.63 rows=11 width=4) Recheck Cond: (i = 10) -> Bitmap Index Scan on a2_idx (cost=0.00..2.04 rows=11 width=0) Index Cond: (i = 10) -> Bitmap Heap Scan on a3 a (cost=2.04..12.63 rows=11 width=4) Recheck Cond: (i = 10) -> Bitmap Index Scan on a3_idx (cost=0.00..2.04 rows=11 width=0) Index Cond: (i = 10)

Page 27: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что нового в PostgreSQL 8.1 ?Что нового в PostgreSQL 8.1 ?● Table PartitioningTable Partitioning● CONSTRAINT EXCLUSION !!!CONSTRAINT EXCLUSION !!!test=# explain select * from a where i = 10;

QUERY PLAN Result (cost=0.00..17.45 rows=12 width=4) -> Append (cost=0.00..17.45 rows=12 width=4) -> Index Scan using a_pkey on a (cost=0.00..4.82 rows=1 width=4) Index Cond: (i = 10)

-> Bitmap Heap Scan on a1 a (cost=2.04..12.63 rows=11 width=4) Recheck Cond: (i = 10)

-> Bitmap Index Scan on a1_idx (cost=0.00..2.04 rows=11 width=0) Index Cond: (i = 10)(8 rows)

Page 28: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что нового в PostgreSQL 8.1 ?Что нового в PostgreSQL 8.1 ?● ПроизводительностьПроизводительность● SMP – улучшение конкурентности доступа к SMP – улучшение конкурентности доступа к

разделяемой памятиразделяемой памяти● Clock-sweep алгоритм Clock-sweep алгоритм

Page 29: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что нового в PostgreSQL 8.1 ?Что нового в PostgreSQL 8.1 ?● ПроизводительностьПроизводительность● GiST (Generalized Search Tree) стал GiST (Generalized Search Tree) стал

конкурентным ! конкурентным ! ● GiST WAL – восстановление после сбоевGiST WAL – восстановление после сбоев● Tsearch2, ltree, intarray, PosGIS Tsearch2, ltree, intarray, PosGIS

Page 30: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что нового в PostgreSQL 8.1 ?Что нового в PostgreSQL 8.1 ?● Улучшенная поддержка функцийУлучшенная поддержка функций● IN, OUT, INOUT, совместимость с ORACLEIN, OUT, INOUT, совместимость с ORACLE

CREATE FUNCTION foo(IN x integer, INOUT y integer, OUT z integer) AS $$BEGIN y := y + 5; z := x + 5;END;$$ LANGUAGE plpgsql IMMUTABLE STRICT;

SELECT foo(10, 20); foo --------- (25,15)(1 row)

SELECT (foo(10, 20)).*; y | z ----+---- 25 | 15(1 row)

Page 31: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что нового в PostgreSQL 8.1 ?Что нового в PostgreSQL 8.1 ?● Интегрированный Интегрированный autovacuumautovacuum ● MVCC -> VACUUMMVCC -> VACUUM

# select xmin,xmax,i from a where i=5999; xmin | xmax | i --------+------+------ 185789 | 0 | 5999

# begin;BEGIN=# delete from a where i=5999;DELETE 1

# select xmin,xmax,i from a where i=5999; xmin | xmax | i --------+--------+------ 185789 | 185809 | 5999

Page 32: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что ожидается Что ожидается вв

PostgreSQL 8.2 PostgreSQL 8.2 ??

Page 33: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что ожидается ?Что ожидается ?● PITR – незаполненные WAL-логи, встроенная PITR – незаполненные WAL-логи, встроенная

репликациярепликация● Иерархические запросыИерархические запросы● Updateable viewUpdateable view● Улучшенная сортировка – 40%Улучшенная сортировка – 40%● Bitmap indices (on-disk) Bitmap indices (on-disk) ● Gin – обобщенный обратный индексGin – обобщенный обратный индекс● Tsearch2 – UTF-8, обратный индекс, query Tsearch2 – UTF-8, обратный индекс, query

rewriting, улучшенная релевацияrewriting, улучшенная релевация● Индексная поддержка any arrayИндексная поддержка any array

Page 34: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что ожидается ?Что ожидается ?

Page 35: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

Что ожидается ?Что ожидается ?

Рецепты PostgreSQL

Алексей Борзов, Олег Бартунов

Page 36: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL● Sony Online EntertainmentSony Online Entertainment ● Enterprise DB, 1.5mln.Enterprise DB, 1.5mln.● Oracle -> PostgreSQL 8.1Oracle -> PostgreSQL 8.1● SUN Microsystems SUN Microsystems ● Solaris 10Solaris 10● поддержка 24x7поддержка 24x7● Beeline (Вымпелком)Beeline (Вымпелком)● SAI CAS - Catalog Access ServiceSAI CAS - Catalog Access Service● Терабайты Терабайты ● vo.astronet.ruvo.astronet.ru● Rx1620 HP RUSSIA Itanium 2, Linux 2.6Rx1620 HP RUSSIA Itanium 2, Linux 2.6

Page 37: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ.

PostgreSQL

БлагодарностиБлагодарности

● РФФИРФФИ ● Astronet (Astronet (www.astronet.ruwww.astronet.ru), 05-07-90225-в), 05-07-90225-в● Научная сеть (nature.web.ru), 03-07-90187-вНаучная сеть (nature.web.ru), 03-07-90187-в● HP RussiaHP Russia