SlideShare a Scribd company logo
関西オープンフォーラム 2015
(2015-11-06)
PostgreSQL 9.5 最新機能
ぬこ@横浜 (@nuko_yokohama)
2
自己紹介
ぬこ@横浜
でググると何かしら出てくると思います
今日は日本 PostgreSQL ユーザ会
( JPUG )枠でこちらへ来ました。
3
自己紹介 ( こんなの作ってた )
SELECT data, data + ' 拾 ' FROM ksj_sample;
data | ?column?
------------+----------------
五百壱拾六 | 五百弐拾六
零 | 壱拾
参万壱百壱 | 参万壱百壱拾壱
(3 rows)
SELECT data, data * ' 拾 ' FROM ksj_sample;
data | ?column?
------------+--------------
五百壱拾六 | 五千壱百六拾
零 | 零
参万壱百壱 | 参拾壱千壱拾
(3 rows)
SELECT sum(data) FROM ksj_sample;
sum
----------------
参万六百壱拾七
(1 row)
SELECT * FROM ksj_sample ORDER BY data;
data
------------
零
五百壱拾六
参万壱百壱
(3 rows)
ksj (漢数字型)
漢数字で四則演算や
比較演算できる、誰得データ型
4
自己紹介 ( こんなの作ってた )
SELECT * FROM foo WHERE data = ' エバンゲリオン';
id | data
----+------------
3 | エヴァンゲリヲン
(1 row)
SELECT * FROM foo WHERE data = ' センヌリティウス';
id | data
----+------
(0 rows)
SELECT * FROM foo WHERE data /= ' センヌリティウス';
id | data
----+------------------
4 | セリヌンティウス
(1 row)
ntext( ゆるい文字型 )
日本語正規化比較
ゆるい比較演算子 (/=)
類似度計算で typo を許容する
誰得日本語テキスト型と
全文検索用パッチ
5
自己紹介 ( こんなの作ってた )
CREATE FOREIGN TABLE bar3 (
my_name text,
my_gender text,
follower_name text,
follower_gender text)
SERVER foo
OPTIONS (query '{
"query":"START n=node(*)
MATCH p=fm<-[]-n<-[]-fm
RETURN n.name as my_name, n.gender as my_gender,
fm.name as follower_name, fm.gender as follower_gender" }');
SELECT my_name, my_gender, follower_name, follower_gender FROM bar3;
my_name | my_gender | follower_name | follower_gender
---------+-----------+---------------+-----------------
Akagi | Famale | Hiryu | Famale
Nagato | Male | Mutsu | Male
Mutsu | Male | Nagato | Male
Hiryu | Famale | Soryu | Famale
Hiryu | Famale | Akagi | Famale
Soryu | Famale | Hiryu | Famale
(6 rows)
new4j_fdw
グラフデータベース Neo4j を
わざわざ PostgreSQL 経由で
SQL を使って検索する誰得な
Foreign Data Wrapper
neo4j_fdw
何故か本家 Wiki にも
登録されている・・・w
https://wiki.postgresql.org/wiki/FDW
6
自己紹介 ( こんなの作ってた )
postgres=# LISTEN HB_CL;
LISTEN
postgres=# NOTIFY HB_SV,'xxxx';;
NOTIFY
Asynchronous notification "hb_cl" with payload "Invalid data.(xxxx)"
received from server process with PID 29520.
postgres=# NOTIFY HB_SV,'0123';;
NOTIFY
Asynchronous notification "hb_cl" with payload "2 Hit / 1 Blow."
received from server process with PID 29520.
postgres=# NOTIFY HB_SV,'0813';;
NOTIFY
Asynchronous notification "hb_cl" with payload "4 Hit! Conguratulatoins!, next new game."
received from server process with PID 29520.
postgres=#
hb_worker
psql などから数当て (Hit & Blow) ができる
誰得 Background Worker Process
7
自己紹介
要するに
PostgreSQL を
無駄に使うのが好き
8
目次
PostgreSQL の概要と歴史
PostgreSQL 9.5 の新機能
BRIN
UPSERT
Row Level Security
その他の 9.5 改善
9
PostgreSQL の
概要と歴史
10
PostgreSQL の概要
MySQL と並ぶ OSS RDBMS
ライセンスは BSD ライクなもの
高度なクエリにも対応
性能面でも商用 DBMS とも遜色なし
9.0 以降はレプリケーションも対応
多種多様なデータ型サポート
非常に高い拡張性
活発な開発コミュニティ
17
PostgreSQL 9.5 の
新機能
23
BRIN
(Block Range Index)
25
BRIN の特徴 (1)
インデックスサイズが非常に小さい
btree
BRIN
0.000 500.000 1,000.000 1,500.000 2,000.000 2,500.000
2,142.094
0.258
timestamp 型 1 億件のインデックスサイズ
インデックスサイズ (MB)
この例では BRIN のサイズは btree のわずか 0.01%
26
BRIN の特徴 (1)
インデックス作成時間も短い
サイズの割には処理時間はそこそこかかるが、
btree インデックス生成よりはかなり短い
btree
BRIN
0 20 40 60 80 100 120
95.82
22.07
timestamp 型 1 億件のインデックス作成時間
インデックス作成時間 (s)
30
BRIN の特徴 (4)
値の並びと物理配置が一致する例
レコード生成時のタイムスタンプ
Serial 型
頻繁に更新が発生しない表
値の並びと物理配置の相関関係は
pg_stats ビューの correlation を参照する。
1 あるいは -1 に近ければ相関関係が強い。
0 に近ければ相関関係が弱い。
31
BRIN 向きの列
データ格納時順に単調増加するような値
・挿入時のタイムスタンプとか
・シーケンス値とか
頻繁に更新されない表の列
32
BRIN vs Partition
どちらも大規模テーブルの設計時に検討するもの
でも、目的は異なると考えたほうがいい
BRIN
巨大な 1 つの表+インデックス
巨大な表に対する範囲検索の性能向上
構築・運用は容易
パーティーション
キーにより分割された子テーブル
子テーブルの TRUNCATE が得意
パーティションキーを含む検索が有利になることもある
構築・運用は面倒・・・
34
UPSERT
35
UPSERT とは何か?
INSERT しようとして
制約違反になったら
代わりに UPDATE する機能
PostgreSQL では UPSERT 文ではなく
INSERT 文の拡張という形で
UPSERT を実装している
36
INSERT 文の拡張
[ WITH [ RECURSIVE ] with_query [, ...] ]
INSERT INTO table_name [ AS alias ] [ ( column_name [, ...] ) ]
{ DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }
[ ON CONFLICT [ conflict_target ] conflict_action ]
[ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
( { column_name_index | ( expression_index ) }
[ COLLATE collation ] [ opclass ] [, ...] ) [ WHERE index_predicate ]
ON CONSTRAINT constraint_name
conflict_target の詳細
DO NOTHING
DO UPDATE SET { column_name = { expression | DEFAULT } |
( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) |
( column_name [, ...] ) = ( sub-SELECT )
} [, ...]
[ WHERE condition ]
conflict_action の詳細
39
UPSERT の制約
UPSERT は「制約違反」時に
INSERT するというもの。
制約がない表には UPSERT は使えない
40
UPSERT の制約
制約がない表へは UPSERT できない
CREATE TABLE test (id int, data text);
CREATE TABLE
Table "public.test"
Column | Type | Modifiers
--------+---------+-----------
id | integer |
data | text |
INSERT INTO test VALUES (1, 'aaa'),(2, 'bbb'),(3, 'ccc');
INSERT 0 3
TABLE test;
id | data
----+------
1 | aaa
2 | bbb
3 | ccc
(3 rows)
INSERT INTO test VALUES (2, 'bbb_i')
ON CONFLICT ON CONSTRAINT test_pkey
DO UPDATE SET data = 'bbb_u';
psql:upsert-01.sql:29: ERROR: constraint "test_pkey" for table "test" does not exist
41
UPSERT の代替手段
9.4 まででも UPSERT 相当を
代替することは一応できた。
Common Table Expression(CTE)
Trigger
Application で対応
45
Row Level Security
47
RLS に関連する SQL コマンド
CREATE POLICY (新規)
ALTER POLICY (新規)
DROP POLOCY (新規)
ALTER TABLE (変更)
49
RLS の簡単な例
こんなロールを用意しておく
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
user_a | | {}
user_b | | {}
user_m | | {}
こんなテーブルを用意してデータ投入
CREATE TABLE test (id int primary key, name text, body text, acl text[]);
INSERT INTO test VALUES
(1, 'Project-A document', 'dummy', ARRAY['A','M']),
(2, 'Project-B document', 'dummy', ARRAY['B','M']),
(3, 'Project-A black-history', 'dummy', ARRAY['A']),
(4, 'Project list', 'dummy', ARRAY['M'])
;
58
その他の 9.5 改善点
59
その他の 9.5 変更点
PostgreSQL 9.5 の変更点は非常に多いので
限られた時間ではとても説明しきれませんが
その中から 10 個ばかり変更点を簡単に紹介します。
PostgreSQL 設定パラメータ
稼働統計情報ビューの変更
システムカタログの変更
SQL コマンドの追加
text/numeric ソート性能改善
ハッシュ生成の性能改善
wal 圧縮
JSON 型の改善
pg_rewind
psql の改善
62
PostgreSQL 設定パラメータ
チェックポイント間で保持できる WAL ファイルの量の
設定パラメータが 9.4 と 9.5 で異なる。要注意。
9.4 まで: checkpoint_segments
( 最大ログファイル数:デフォルト =3 )
↓
9.5 から: max_wal_size/max_min_size
(サイズによる設定 : デフォルト =1GB )
9.4 までの環境で使っていた checkpoint_segments の
パラメータは、 9.5 からはどう設定すればいいの?
64
稼働統計情報ビューの変更
PostgreSQL は実行中のさまざまな統計情報を収集し、
稼働統計情報ビュー経由や SQL 関数によって
統計情報を監視できる。
PostgreSQL 9.5 でも若干変更があった。
ビュー名・関数名 変更内容
pg_stat_ssl ビュー SSL 接続に関するビューが追加され
た。
pg_stat_get_snapshot_timestamp() 関数 統計情報のスナップショット取得時
間を返却する関数が追加された。
66
SQL コマンドの追加
PostgreSQL 9.5 では、
以下の SQL コマンドの追加や改善が予定されている。
INSERT(UPSERT 機能 )
SELECT(GROUP SETS, SKIP LOCKED, TABLESAMPLE)
UPDATE( 複数カラム更新の構文追加 )
ちょっと面白い機能として、カラム名を間違えたときに
カラム名を推定して HINT を出す機能が追加されている。
69
text/numeric ソート性能改善
text 型と numeric 型のソート性能が大きく改善された。
今までロケールを意識した比較をしていたけど、
バイトオーダーで比較するように修正したっぽい。
Improve the speed of sorting character and numeric fields
(Peter Geoghegan, Andrew Gierth, Robert Haas)
72
wal 圧縮機能
更新ログ (Write Ahead Log) を書き出すときに
圧縮するかどうかを決める設定値が追加された。
Full Page Write 時に書き出すサイズが小さくなる代わりに
圧縮 ( 書き出し時 )/ 伸長 ( リカバリ時など ) 時の
CPU コストが少し増大するので、利用すべきかどうかは
環境や案件に合わせて検証が必要そう。
Add configuration parameter wal_compression to control
compression of full page images stored in WAL
(Rahila Syed, Michael Paquier)
73
JSON 型の改善
PostgreSQL 9.2 からデータ型として
JSON(JSONB) 型が扱えるようになっている。
9.2 から順調に進化。 9.5 では…?
●JSON 型の導入。
●2 つの JSON 型構築関数。
●JSON 内の値を
使った条件検索は
できなかった。
●JSON 型関数・演算子の
大幅な強化。
●JSON データ型への
パスによるアクセス。
●JSON 内の値を使った
条件検索が可能に。
●JSONB 型の導入。
●検索の高速化
●独自演算子の追加
●GIN インデックス対応
9.2
9.3
9.4
74
JSON 型の改善
PostgreSQL 9.5 では
JSON/JSONB 型に関する改善が
6 項目挙げられている。
その中でも便利そうだと思えるのが、
部分更新演算子 ( || ) の追加。
79
まとめ
80
PostgreSQL 9.5 の主な改善点
Enterpise 用途に向けた改善
→ BRIN, Row Level Security
性能改善
→ ソート性能 , Hash 生成性能 ,
開発者向け機能の改善
→UPSERT, 各種クエリ改善 , JSONB 型改善 , psql 改善
データベース運用管理者向けの改善
→ wal 圧縮 , pg_rewind
82
ご清聴
ありがとう
ございました
83
Question?

More Related Content

What's hot

PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介Insight Technology, Inc.
 
PostgreSQL9.3新機能紹介
PostgreSQL9.3新機能紹介PostgreSQL9.3新機能紹介
PostgreSQL9.3新機能紹介
NTT DATA OSS Professional Services
 
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
Shigeru Hanada
 
外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張
Shigeru Hanada
 
20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー
Kazuko Itoda
 
Chugokudb study-20150131
Chugokudb study-20150131Chugokudb study-20150131
Chugokudb study-20150131
Toshi Harada
 
DynamoDB MyNA・JPUG合同DB勉強会 in 東京
DynamoDB   MyNA・JPUG合同DB勉強会 in 東京DynamoDB   MyNA・JPUG合同DB勉強会 in 東京
DynamoDB MyNA・JPUG合同DB勉強会 in 東京
Yuko Mori
 
Jpug study-pq 20170121
Jpug study-pq 20170121Jpug study-pq 20170121
Jpug study-pq 20170121
Kosuke Kida
 
perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)
NTT DATA OSS Professional Services
 
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説
Masahiko Sawada
 
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)
Masahiko Sawada
 
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介Ryuichiro Munechika
 
Chugoku db 20th-postgresql-10-pub
Chugoku db 20th-postgresql-10-pubChugoku db 20th-postgresql-10-pub
Chugoku db 20th-postgresql-10-pub
Toshi Harada
 
Pg14_sql_standard_function_body
Pg14_sql_standard_function_bodyPg14_sql_standard_function_body
Pg14_sql_standard_function_body
kasaharatt
 
PostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろうPostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろう
kasaharatt
 
Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6
Toshi Harada
 
PostreSQL監査
PostreSQL監査PostreSQL監査
PGCon.jp 2014 jsonb-datatype-20141205
PGCon.jp 2014 jsonb-datatype-20141205PGCon.jp 2014 jsonb-datatype-20141205
PGCon.jp 2014 jsonb-datatype-20141205
Toshi Harada
 
Chugokudb18_2
Chugokudb18_2Chugokudb18_2
Chugokudb18_2
Kosuke Kida
 

What's hot (20)

PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
 
PostgreSQL9.3新機能紹介
PostgreSQL9.3新機能紹介PostgreSQL9.3新機能紹介
PostgreSQL9.3新機能紹介
 
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
 
外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張
 
20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー
 
Chugokudb study-20150131
Chugokudb study-20150131Chugokudb study-20150131
Chugokudb study-20150131
 
DynamoDB MyNA・JPUG合同DB勉強会 in 東京
DynamoDB   MyNA・JPUG合同DB勉強会 in 東京DynamoDB   MyNA・JPUG合同DB勉強会 in 東京
DynamoDB MyNA・JPUG合同DB勉強会 in 東京
 
Jpug study-pq 20170121
Jpug study-pq 20170121Jpug study-pq 20170121
Jpug study-pq 20170121
 
perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)
 
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説
 
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)
 
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
 
Chugoku db 20th-postgresql-10-pub
Chugoku db 20th-postgresql-10-pubChugoku db 20th-postgresql-10-pub
Chugoku db 20th-postgresql-10-pub
 
Pg14_sql_standard_function_body
Pg14_sql_standard_function_bodyPg14_sql_standard_function_body
Pg14_sql_standard_function_body
 
PostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろうPostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろう
 
Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6
 
PostreSQL監査
PostreSQL監査PostreSQL監査
PostreSQL監査
 
PGCon.jp 2014 jsonb-datatype-20141205
PGCon.jp 2014 jsonb-datatype-20141205PGCon.jp 2014 jsonb-datatype-20141205
PGCon.jp 2014 jsonb-datatype-20141205
 
Chugokudb18_2
Chugokudb18_2Chugokudb18_2
Chugokudb18_2
 

Similar to KOF2015 PostgreSQL 9.5

Introduction of Oracle Database Architecture
Introduction of Oracle Database ArchitectureIntroduction of Oracle Database Architecture
Introduction of Oracle Database Architecture
Ryota Watabe
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介
Satoshi Hirata
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
Masahiko Sawada
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
 
PostgreSQL15 新機能紹介
PostgreSQL15 新機能紹介PostgreSQL15 新機能紹介
PostgreSQL15 新機能紹介
Satoshi Hirata
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
Ryusuke Kajiyama
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU Collation
Noriyoshi Shinoda
 
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVSPostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVS
Noriyoshi Shinoda
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
20190119 aws-study-pg-extension
20190119 aws-study-pg-extension20190119 aws-study-pg-extension
20190119 aws-study-pg-extension
Toshi Harada
 
20171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-1020171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-10
Toshi Harada
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Masayuki Ozawa
 
MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理
Shinya Sugiyama
 
MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)
yoyamasaki
 
Ntt tx-study-postgre sql-10
Ntt tx-study-postgre sql-10Ntt tx-study-postgre sql-10
Ntt tx-study-postgre sql-10
Toshi Harada
 
20171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-1020171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-10
Toshi Harada
 
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
Insight Technology, Inc.
 
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
Satoshi Nagayasu
 
PostgreSQL使いのエンジニアから見たMySQL
PostgreSQL使いのエンジニアから見たMySQLPostgreSQL使いのエンジニアから見たMySQL
PostgreSQL使いのエンジニアから見たMySQL
toshihiro_kitagawa
 
20181110 fok2018-pg-extension
20181110 fok2018-pg-extension20181110 fok2018-pg-extension
20181110 fok2018-pg-extension
Toshi Harada
 

Similar to KOF2015 PostgreSQL 9.5 (20)

Introduction of Oracle Database Architecture
Introduction of Oracle Database ArchitectureIntroduction of Oracle Database Architecture
Introduction of Oracle Database Architecture
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
PostgreSQL15 新機能紹介
PostgreSQL15 新機能紹介PostgreSQL15 新機能紹介
PostgreSQL15 新機能紹介
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU Collation
 
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVSPostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVS
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
20190119 aws-study-pg-extension
20190119 aws-study-pg-extension20190119 aws-study-pg-extension
20190119 aws-study-pg-extension
 
20171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-1020171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-10
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
 
MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理
 
MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)
 
Ntt tx-study-postgre sql-10
Ntt tx-study-postgre sql-10Ntt tx-study-postgre sql-10
Ntt tx-study-postgre sql-10
 
20171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-1020171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-10
 
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
 
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
 
PostgreSQL使いのエンジニアから見たMySQL
PostgreSQL使いのエンジニアから見たMySQLPostgreSQL使いのエンジニアから見たMySQL
PostgreSQL使いのエンジニアから見たMySQL
 
20181110 fok2018-pg-extension
20181110 fok2018-pg-extension20181110 fok2018-pg-extension
20181110 fok2018-pg-extension
 

More from Toshi Harada

無駄にNeo4jを使っている日々
無駄にNeo4jを使っている日々無駄にNeo4jを使っている日々
無駄にNeo4jを使っている日々
Toshi Harada
 
Pgunconf16 toast
Pgunconf16 toastPgunconf16 toast
Pgunconf16 toast
Toshi Harada
 
Pgunconf14 pg13-psql
Pgunconf14 pg13-psqlPgunconf14 pg13-psql
Pgunconf14 pg13-psql
Toshi Harada
 
20190518 27th-chugoku db-lt-pg12
20190518 27th-chugoku db-lt-pg1220190518 27th-chugoku db-lt-pg12
20190518 27th-chugoku db-lt-pg12
Toshi Harada
 
20190202-pgunconf-Access-Privilege-Inquiry-Functions
20190202-pgunconf-Access-Privilege-Inquiry-Functions20190202-pgunconf-Access-Privilege-Inquiry-Functions
20190202-pgunconf-Access-Privilege-Inquiry-Functions
Toshi Harada
 
20181122 pg con-jp-lt-logrep
20181122 pg con-jp-lt-logrep20181122 pg con-jp-lt-logrep
20181122 pg con-jp-lt-logrep
Toshi Harada
 
20171103 pg con-jp-lt-plpgsql
20171103 pg con-jp-lt-plpgsql20171103 pg con-jp-lt-plpgsql
20171103 pg con-jp-lt-plpgsql
Toshi Harada
 
20170819 ocd-l tthon-pgdev
20170819 ocd-l tthon-pgdev20170819 ocd-l tthon-pgdev
20170819 ocd-l tthon-pgdev
Toshi Harada
 
Jpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pubJpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pub
Toshi Harada
 
Pgconf asia-201612203-pg reversi-ja
Pgconf asia-201612203-pg reversi-jaPgconf asia-201612203-pg reversi-ja
Pgconf asia-201612203-pg reversi-ja
Toshi Harada
 
Pgconf asia-201612203-pg reversi
Pgconf asia-201612203-pg reversiPgconf asia-201612203-pg reversi
Pgconf asia-201612203-pg reversi
Toshi Harada
 
Kof2016 postgresql-9.6
Kof2016 postgresql-9.6Kof2016 postgresql-9.6
Kof2016 postgresql-9.6
Toshi Harada
 
Chugoku db 17th-lt-kly
Chugoku db 17th-lt-klyChugoku db 17th-lt-kly
Chugoku db 17th-lt-kly
Toshi Harada
 
Osc shimane-2016-do-postgres-dream-of-graph-database
Osc shimane-2016-do-postgres-dream-of-graph-databaseOsc shimane-2016-do-postgres-dream-of-graph-database
Osc shimane-2016-do-postgres-dream-of-graph-database
Toshi Harada
 
Dblt#2 do-postgres-dream-of-graph-database
Dblt#2 do-postgres-dream-of-graph-databaseDblt#2 do-postgres-dream-of-graph-database
Dblt#2 do-postgres-dream-of-graph-database
Toshi Harada
 
Do postgres-dream-of-graph-database
Do postgres-dream-of-graph-databaseDo postgres-dream-of-graph-database
Do postgres-dream-of-graph-database
Toshi Harada
 
MyNA JPUG study 20160220-postgresql-json-datatype
MyNA JPUG study 20160220-postgresql-json-datatypeMyNA JPUG study 20160220-postgresql-json-datatype
MyNA JPUG study 20160220-postgresql-json-datatype
Toshi Harada
 
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatypeOsc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Toshi Harada
 
20150530 pgunconf-ycsb-jsonb
20150530 pgunconf-ycsb-jsonb20150530 pgunconf-ycsb-jsonb
20150530 pgunconf-ycsb-jsonb
Toshi Harada
 
20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmark20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmark
Toshi Harada
 

More from Toshi Harada (20)

無駄にNeo4jを使っている日々
無駄にNeo4jを使っている日々無駄にNeo4jを使っている日々
無駄にNeo4jを使っている日々
 
Pgunconf16 toast
Pgunconf16 toastPgunconf16 toast
Pgunconf16 toast
 
Pgunconf14 pg13-psql
Pgunconf14 pg13-psqlPgunconf14 pg13-psql
Pgunconf14 pg13-psql
 
20190518 27th-chugoku db-lt-pg12
20190518 27th-chugoku db-lt-pg1220190518 27th-chugoku db-lt-pg12
20190518 27th-chugoku db-lt-pg12
 
20190202-pgunconf-Access-Privilege-Inquiry-Functions
20190202-pgunconf-Access-Privilege-Inquiry-Functions20190202-pgunconf-Access-Privilege-Inquiry-Functions
20190202-pgunconf-Access-Privilege-Inquiry-Functions
 
20181122 pg con-jp-lt-logrep
20181122 pg con-jp-lt-logrep20181122 pg con-jp-lt-logrep
20181122 pg con-jp-lt-logrep
 
20171103 pg con-jp-lt-plpgsql
20171103 pg con-jp-lt-plpgsql20171103 pg con-jp-lt-plpgsql
20171103 pg con-jp-lt-plpgsql
 
20170819 ocd-l tthon-pgdev
20170819 ocd-l tthon-pgdev20170819 ocd-l tthon-pgdev
20170819 ocd-l tthon-pgdev
 
Jpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pubJpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pub
 
Pgconf asia-201612203-pg reversi-ja
Pgconf asia-201612203-pg reversi-jaPgconf asia-201612203-pg reversi-ja
Pgconf asia-201612203-pg reversi-ja
 
Pgconf asia-201612203-pg reversi
Pgconf asia-201612203-pg reversiPgconf asia-201612203-pg reversi
Pgconf asia-201612203-pg reversi
 
Kof2016 postgresql-9.6
Kof2016 postgresql-9.6Kof2016 postgresql-9.6
Kof2016 postgresql-9.6
 
Chugoku db 17th-lt-kly
Chugoku db 17th-lt-klyChugoku db 17th-lt-kly
Chugoku db 17th-lt-kly
 
Osc shimane-2016-do-postgres-dream-of-graph-database
Osc shimane-2016-do-postgres-dream-of-graph-databaseOsc shimane-2016-do-postgres-dream-of-graph-database
Osc shimane-2016-do-postgres-dream-of-graph-database
 
Dblt#2 do-postgres-dream-of-graph-database
Dblt#2 do-postgres-dream-of-graph-databaseDblt#2 do-postgres-dream-of-graph-database
Dblt#2 do-postgres-dream-of-graph-database
 
Do postgres-dream-of-graph-database
Do postgres-dream-of-graph-databaseDo postgres-dream-of-graph-database
Do postgres-dream-of-graph-database
 
MyNA JPUG study 20160220-postgresql-json-datatype
MyNA JPUG study 20160220-postgresql-json-datatypeMyNA JPUG study 20160220-postgresql-json-datatype
MyNA JPUG study 20160220-postgresql-json-datatype
 
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatypeOsc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatype
 
20150530 pgunconf-ycsb-jsonb
20150530 pgunconf-ycsb-jsonb20150530 pgunconf-ycsb-jsonb
20150530 pgunconf-ycsb-jsonb
 
20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmark20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmark
 

Recently uploaded

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 

Recently uploaded (14)

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 

KOF2015 PostgreSQL 9.5

  • 1. 関西オープンフォーラム 2015 (2015-11-06) PostgreSQL 9.5 最新機能 ぬこ@横浜 (@nuko_yokohama)
  • 3. 3 自己紹介 ( こんなの作ってた ) SELECT data, data + ' 拾 ' FROM ksj_sample; data | ?column? ------------+---------------- 五百壱拾六 | 五百弐拾六 零 | 壱拾 参万壱百壱 | 参万壱百壱拾壱 (3 rows) SELECT data, data * ' 拾 ' FROM ksj_sample; data | ?column? ------------+-------------- 五百壱拾六 | 五千壱百六拾 零 | 零 参万壱百壱 | 参拾壱千壱拾 (3 rows) SELECT sum(data) FROM ksj_sample; sum ---------------- 参万六百壱拾七 (1 row) SELECT * FROM ksj_sample ORDER BY data; data ------------ 零 五百壱拾六 参万壱百壱 (3 rows) ksj (漢数字型) 漢数字で四則演算や 比較演算できる、誰得データ型
  • 4. 4 自己紹介 ( こんなの作ってた ) SELECT * FROM foo WHERE data = ' エバンゲリオン'; id | data ----+------------ 3 | エヴァンゲリヲン (1 row) SELECT * FROM foo WHERE data = ' センヌリティウス'; id | data ----+------ (0 rows) SELECT * FROM foo WHERE data /= ' センヌリティウス'; id | data ----+------------------ 4 | セリヌンティウス (1 row) ntext( ゆるい文字型 ) 日本語正規化比較 ゆるい比較演算子 (/=) 類似度計算で typo を許容する 誰得日本語テキスト型と 全文検索用パッチ
  • 5. 5 自己紹介 ( こんなの作ってた ) CREATE FOREIGN TABLE bar3 ( my_name text, my_gender text, follower_name text, follower_gender text) SERVER foo OPTIONS (query '{ "query":"START n=node(*) MATCH p=fm<-[]-n<-[]-fm RETURN n.name as my_name, n.gender as my_gender, fm.name as follower_name, fm.gender as follower_gender" }'); SELECT my_name, my_gender, follower_name, follower_gender FROM bar3; my_name | my_gender | follower_name | follower_gender ---------+-----------+---------------+----------------- Akagi | Famale | Hiryu | Famale Nagato | Male | Mutsu | Male Mutsu | Male | Nagato | Male Hiryu | Famale | Soryu | Famale Hiryu | Famale | Akagi | Famale Soryu | Famale | Hiryu | Famale (6 rows) new4j_fdw グラフデータベース Neo4j を わざわざ PostgreSQL 経由で SQL を使って検索する誰得な Foreign Data Wrapper neo4j_fdw 何故か本家 Wiki にも 登録されている・・・w https://wiki.postgresql.org/wiki/FDW
  • 6. 6 自己紹介 ( こんなの作ってた ) postgres=# LISTEN HB_CL; LISTEN postgres=# NOTIFY HB_SV,'xxxx';; NOTIFY Asynchronous notification "hb_cl" with payload "Invalid data.(xxxx)" received from server process with PID 29520. postgres=# NOTIFY HB_SV,'0123';; NOTIFY Asynchronous notification "hb_cl" with payload "2 Hit / 1 Blow." received from server process with PID 29520. postgres=# NOTIFY HB_SV,'0813';; NOTIFY Asynchronous notification "hb_cl" with payload "4 Hit! Conguratulatoins!, next new game." received from server process with PID 29520. postgres=# hb_worker psql などから数当て (Hit & Blow) ができる 誰得 Background Worker Process
  • 8. 8 目次 PostgreSQL の概要と歴史 PostgreSQL 9.5 の新機能 BRIN UPSERT Row Level Security その他の 9.5 改善
  • 10. 10 PostgreSQL の概要 MySQL と並ぶ OSS RDBMS ライセンスは BSD ライクなもの 高度なクエリにも対応 性能面でも商用 DBMS とも遜色なし 9.0 以降はレプリケーションも対応 多種多様なデータ型サポート 非常に高い拡張性 活発な開発コミュニティ
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 24.
  • 25. 25 BRIN の特徴 (1) インデックスサイズが非常に小さい btree BRIN 0.000 500.000 1,000.000 1,500.000 2,000.000 2,500.000 2,142.094 0.258 timestamp 型 1 億件のインデックスサイズ インデックスサイズ (MB) この例では BRIN のサイズは btree のわずか 0.01%
  • 26. 26 BRIN の特徴 (1) インデックス作成時間も短い サイズの割には処理時間はそこそこかかるが、 btree インデックス生成よりはかなり短い btree BRIN 0 20 40 60 80 100 120 95.82 22.07 timestamp 型 1 億件のインデックス作成時間 インデックス作成時間 (s)
  • 27.
  • 28.
  • 29.
  • 30. 30 BRIN の特徴 (4) 値の並びと物理配置が一致する例 レコード生成時のタイムスタンプ Serial 型 頻繁に更新が発生しない表 値の並びと物理配置の相関関係は pg_stats ビューの correlation を参照する。 1 あるいは -1 に近ければ相関関係が強い。 0 に近ければ相関関係が弱い。
  • 32. 32 BRIN vs Partition どちらも大規模テーブルの設計時に検討するもの でも、目的は異なると考えたほうがいい BRIN 巨大な 1 つの表+インデックス 巨大な表に対する範囲検索の性能向上 構築・運用は容易 パーティーション キーにより分割された子テーブル 子テーブルの TRUNCATE が得意 パーティションキーを含む検索が有利になることもある 構築・運用は面倒・・・
  • 33.
  • 35. 35 UPSERT とは何か? INSERT しようとして 制約違反になったら 代わりに UPDATE する機能 PostgreSQL では UPSERT 文ではなく INSERT 文の拡張という形で UPSERT を実装している
  • 36. 36 INSERT 文の拡張 [ WITH [ RECURSIVE ] with_query [, ...] ] INSERT INTO table_name [ AS alias ] [ ( column_name [, ...] ) ] { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query } [ ON CONFLICT [ conflict_target ] conflict_action ] [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ] ( { column_name_index | ( expression_index ) } [ COLLATE collation ] [ opclass ] [, ...] ) [ WHERE index_predicate ] ON CONSTRAINT constraint_name conflict_target の詳細 DO NOTHING DO UPDATE SET { column_name = { expression | DEFAULT } | ( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) | ( column_name [, ...] ) = ( sub-SELECT ) } [, ...] [ WHERE condition ] conflict_action の詳細
  • 37.
  • 38.
  • 39. 39 UPSERT の制約 UPSERT は「制約違反」時に INSERT するというもの。 制約がない表には UPSERT は使えない
  • 40. 40 UPSERT の制約 制約がない表へは UPSERT できない CREATE TABLE test (id int, data text); CREATE TABLE Table "public.test" Column | Type | Modifiers --------+---------+----------- id | integer | data | text | INSERT INTO test VALUES (1, 'aaa'),(2, 'bbb'),(3, 'ccc'); INSERT 0 3 TABLE test; id | data ----+------ 1 | aaa 2 | bbb 3 | ccc (3 rows) INSERT INTO test VALUES (2, 'bbb_i') ON CONFLICT ON CONSTRAINT test_pkey DO UPDATE SET data = 'bbb_u'; psql:upsert-01.sql:29: ERROR: constraint "test_pkey" for table "test" does not exist
  • 41. 41 UPSERT の代替手段 9.4 まででも UPSERT 相当を 代替することは一応できた。 Common Table Expression(CTE) Trigger Application で対応
  • 42.
  • 43.
  • 44.
  • 46.
  • 47. 47 RLS に関連する SQL コマンド CREATE POLICY (新規) ALTER POLICY (新規) DROP POLOCY (新規) ALTER TABLE (変更)
  • 48.
  • 49. 49 RLS の簡単な例 こんなロールを用意しておく Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} user_a | | {} user_b | | {} user_m | | {} こんなテーブルを用意してデータ投入 CREATE TABLE test (id int primary key, name text, body text, acl text[]); INSERT INTO test VALUES (1, 'Project-A document', 'dummy', ARRAY['A','M']), (2, 'Project-B document', 'dummy', ARRAY['B','M']), (3, 'Project-A black-history', 'dummy', ARRAY['A']), (4, 'Project list', 'dummy', ARRAY['M']) ;
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 59. 59 その他の 9.5 変更点 PostgreSQL 9.5 の変更点は非常に多いので 限られた時間ではとても説明しきれませんが その中から 10 個ばかり変更点を簡単に紹介します。 PostgreSQL 設定パラメータ 稼働統計情報ビューの変更 システムカタログの変更 SQL コマンドの追加 text/numeric ソート性能改善 ハッシュ生成の性能改善 wal 圧縮 JSON 型の改善 pg_rewind psql の改善
  • 60.
  • 61.
  • 62. 62 PostgreSQL 設定パラメータ チェックポイント間で保持できる WAL ファイルの量の 設定パラメータが 9.4 と 9.5 で異なる。要注意。 9.4 まで: checkpoint_segments ( 最大ログファイル数:デフォルト =3 ) ↓ 9.5 から: max_wal_size/max_min_size (サイズによる設定 : デフォルト =1GB ) 9.4 までの環境で使っていた checkpoint_segments の パラメータは、 9.5 からはどう設定すればいいの?
  • 63.
  • 64. 64 稼働統計情報ビューの変更 PostgreSQL は実行中のさまざまな統計情報を収集し、 稼働統計情報ビュー経由や SQL 関数によって 統計情報を監視できる。 PostgreSQL 9.5 でも若干変更があった。 ビュー名・関数名 変更内容 pg_stat_ssl ビュー SSL 接続に関するビューが追加され た。 pg_stat_get_snapshot_timestamp() 関数 統計情報のスナップショット取得時 間を返却する関数が追加された。
  • 65.
  • 66. 66 SQL コマンドの追加 PostgreSQL 9.5 では、 以下の SQL コマンドの追加や改善が予定されている。 INSERT(UPSERT 機能 ) SELECT(GROUP SETS, SKIP LOCKED, TABLESAMPLE) UPDATE( 複数カラム更新の構文追加 ) ちょっと面白い機能として、カラム名を間違えたときに カラム名を推定して HINT を出す機能が追加されている。
  • 67.
  • 68.
  • 69. 69 text/numeric ソート性能改善 text 型と numeric 型のソート性能が大きく改善された。 今までロケールを意識した比較をしていたけど、 バイトオーダーで比較するように修正したっぽい。 Improve the speed of sorting character and numeric fields (Peter Geoghegan, Andrew Gierth, Robert Haas)
  • 70.
  • 71.
  • 72. 72 wal 圧縮機能 更新ログ (Write Ahead Log) を書き出すときに 圧縮するかどうかを決める設定値が追加された。 Full Page Write 時に書き出すサイズが小さくなる代わりに 圧縮 ( 書き出し時 )/ 伸長 ( リカバリ時など ) 時の CPU コストが少し増大するので、利用すべきかどうかは 環境や案件に合わせて検証が必要そう。 Add configuration parameter wal_compression to control compression of full page images stored in WAL (Rahila Syed, Michael Paquier)
  • 73. 73 JSON 型の改善 PostgreSQL 9.2 からデータ型として JSON(JSONB) 型が扱えるようになっている。 9.2 から順調に進化。 9.5 では…? ●JSON 型の導入。 ●2 つの JSON 型構築関数。 ●JSON 内の値を 使った条件検索は できなかった。 ●JSON 型関数・演算子の 大幅な強化。 ●JSON データ型への パスによるアクセス。 ●JSON 内の値を使った 条件検索が可能に。 ●JSONB 型の導入。 ●検索の高速化 ●独自演算子の追加 ●GIN インデックス対応 9.2 9.3 9.4
  • 74. 74 JSON 型の改善 PostgreSQL 9.5 では JSON/JSONB 型に関する改善が 6 項目挙げられている。 その中でも便利そうだと思えるのが、 部分更新演算子 ( || ) の追加。
  • 75.
  • 76.
  • 77.
  • 78.
  • 80. 80 PostgreSQL 9.5 の主な改善点 Enterpise 用途に向けた改善 → BRIN, Row Level Security 性能改善 → ソート性能 , Hash 生成性能 , 開発者向け機能の改善 →UPSERT, 各種クエリ改善 , JSONB 型改善 , psql 改善 データベース運用管理者向けの改善 → wal 圧縮 , pg_rewind
  • 81.