postgresql postgresql 8.1 и дальше... Олег Бартунов, Федор Сигаев...
TRANSCRIPT
![Page 1: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/1.jpg)
PostgreSQL
PostgreSQL PostgreSQL 8.18.1
и дальше ...и дальше ...Олег Бартунов, Федор Сигаев
ГАИШ МГУ
![Page 2: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/2.jpg)
PostgreSQL
PostgreSQL - это свободно распространяемая объектно-реляционная система управления базами данных (ORDBMS), наиболее развитая из открытых СУБД в мире и являющаяся реальной альтернативой коммерческим базам данных.
![Page 3: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/3.jpg)
PostgreSQL
PostgreSQL произносится как post-gress-Q-L В разговоре часто употребляется postgres (пост-гресс). Также, употребляется сокращение pgsql (пэ-жэ-эс-ку-эль).
![Page 4: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/4.jpg)
PostgreSQLГенеалогия реляционных СУБД
![Page 5: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/5.jpg)
PostgreSQLСравнение функциональности некоторых СУБД
![Page 6: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/6.jpg)
PostgreSQL
Некоторые ограничения PostgreSQL
![Page 7: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/7.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/8.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/9.jpg)
PostgreSQLhttp://pgfoundry.orghttp://pgfoundry.org
![Page 10: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/10.jpg)
PostgreSQLhttp://gborg.postgresql.org/http://gborg.postgresql.org/
![Page 11: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/11.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/12.jpg)
PostgreSQLpgAdmin IIIpgAdmin III
![Page 13: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/13.jpg)
PostgreSQLphpPgAdminphpPgAdmin
![Page 14: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/14.jpg)
PostgreSQL
PostgreSQL 8 работает в “native” режиме PostgreSQL 8 работает в “native” режиме под Windows 2000, XP and 2003под Windows 2000, XP and 2003
● Может работать как службаМожет работать как служба● InstallerInstaller
![Page 15: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/15.jpg)
PostgreSQL● Включает дополнительные модули:Включает дополнительные модули:
NpgsqlNpgsql JDBCJDBC psqlODBCpsqlODBC pgAdmin IIIpgAdmin III
![Page 16: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/16.jpg)
PostgreSQL
![Page 17: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/17.jpg)
PostgreSQL
Что нового в Что нового в PostgreSQL PostgreSQL
8.1 ?8.1 ?
![Page 18: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/18.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/19.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/20.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/21.jpg)
PostgreSQL
Q3C sky indexing algorithmQ3C sky indexing algorithm● SAI Catalog Access ServicesSAI Catalog Access Services
![Page 22: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/22.jpg)
PostgreSQL
Q3C Sky indexing algorithmQ3C Sky indexing algorithm
![Page 23: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/23.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/24.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/25.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/26.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/27.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/28.jpg)
PostgreSQL
Что нового в PostgreSQL 8.1 ?Что нового в PostgreSQL 8.1 ?● ПроизводительностьПроизводительность● SMP – улучшение конкурентности доступа к SMP – улучшение конкурентности доступа к
разделяемой памятиразделяемой памяти● Clock-sweep алгоритм Clock-sweep алгоритм
![Page 29: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/29.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/30.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/31.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/32.jpg)
PostgreSQL
Что ожидается Что ожидается вв
PostgreSQL 8.2 PostgreSQL 8.2 ??
![Page 33: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/33.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/34.jpg)
PostgreSQL
Что ожидается ?Что ожидается ?
![Page 35: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/35.jpg)
PostgreSQL
Что ожидается ?Что ожидается ?
●
Рецепты PostgreSQL
Алексей Борзов, Олег Бартунов
![Page 36: PostgreSQL PostgreSQL 8.1 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/36.jpg)
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 и дальше... Олег Бартунов, Федор Сигаев ГАИШ МГУ](https://reader030.vdocuments.net/reader030/viewer/2022033013/56649f125503460f94c25921/html5/thumbnails/37.jpg)
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