SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
PostgreSQL9.2新機能



 新潟オープンソースセミナー2012
    2012-11-03

 日本PostgreSQLユーザ会
      花田 茂
謝辞
 この資料は SRA OSS, Inc. の以前の講演資料をベー
  スにしております。ご提供承諾いただきありがとうご
  ざいます。




              日本PostgreSQLユーザ会   2
自己紹介
 花田 茂(はなだ しげる)
    所属: 株式会社メトロシステムズ(東京・池袋)
    Twitter: @s87
    blog: http://d.hatena.jp/s87/
    Mail: shigeru.hanada@gmail.com
 PostgreSQLとの関わり
  2003年頃から周辺ツール開発、性能検証など
  2009年頃からPostgreSQL本体開発(SQL/MED他)
  2011年から日本語ドキュメント翻訳


                  日本PostgreSQLユーザ会    3
PostgreSQL のこれまでと現在




        日本PostgreSQLユーザ会   4
改めて・・・ PostgreSQL とは
 代表的なオープンソースRDBMSのひとつ
 Ingres(1970~ UCB) を先祖に持つ
  PostgreSQL 6.0 (1996 ~) から 15年以上の歴史
 BSDタイプのライセンスで配布
  PostgreSQL Global Development Group と
   University of California が著作権を持つ
 ひとつのオーナー企業、オーナー個人を持たない
  PostgreSQL開発に時間を割く技術者を提供している
   企業がいくつかある/その企業群も少しずつ変遷して
   いる

                   日本PostgreSQLユーザ会        5
PostgreSQL開発体制
                                                       支援企業
Contributors
                                        藤井雅雄
                                        板垣貴裕
                                        原田均
               Major Contributors       石井達夫
                                          :
                                        30~40名
                 Core Team


                           Josh Berkus
                           Tom Lane
                           Peter Eisentraut
                           Magnus Hagander
                           Bruce Momjian
                           Dave Page
開発コミュニ
ティ
                                    日本PostgreSQLユーザ会          6
PostgreSQLの歩み
                                       PostgreSQL のコードサイズとリリース
                                                                                                     同期レプリケーション
                120000                                                                                 外部テーブル


                100000
                                                                                      更新の
                                                                                      高速化
                                                                     ビットマップ
                                                      プリペアド           スキャン
コードサイズ (byte)




                80000
                                                     ステートメント
                                                                                                 レプリケーション
                60000                    並列実行                                                     Windows 64bit
                         外部キー、           VACUUM
                         JOIN構文
                40000                                                                      ウィンドウ関数
                                                                              CPU           再帰SQL
                                                               PITR、         スケール
                20000                                          Windows
                                                 スキーマ
                                  トランザク
                                  ションログ
                    0
                         PG 7.0 PG 7.1 PG 7.2 PG 7.3 PG 7.4 PG 8.0 PG 8.1 PG 8.2 PG 8.3 PG 8.4 PG 9.0 PG 9.1


                             |             |              |              |              |              |
                          2001年         2002年          2005年          2006年          2009年          2011年
                            4月           11月            1月             12月             7月            9月
                                                         日本PostgreSQLユーザ会                                         7
9.1 のおさらい




   日本PostgreSQLユーザ会   8
9.1 のおさらい(1)
 (準)同期レプリケーションに対応
  9.0 でサポートした物理レプリケーションを拡張
  pg_basebackup など利便性向上

    リクエスト
         マスターサーバ                          スタンバイサーバ
 クライア       Postgres         WAL            Postgres
 ント                                                    適用
                             データ
                              WAL
                              データ

                            WAL情報転送




                       日本PostgreSQLユーザ会                     9
9.1 のおさらい(2)
 外部テーブル(SQL/MED)の枠組み
     CSVファイルのラッパーが付属
   拡張モジュール枠組み(CREATE EXTENSION)
   UNLOGGEDテーブル(高速/低信頼)
   空間近傍検索(k-NN GiST インデックス対応)
   SE-Postgres(SE-Linux準拠のセキュリティ)
   N-gram全文検索
   述語ロックSERIALIZABLE、更新WITH句、
    ビュートリガ、カラムロケール指定、etc
                日本PostgreSQLユーザ会   10
PostgreSQL 9.2 の拡張




       日本PostgreSQLユーザ会   11
CPUスケール対応
 Readは コア数64までスケール
    ⇒ PostgreSQL 8.2 で改良 コア数 8~12 まで


 ・Fast Pathロック
 ・直列化部分を短時間に
 ・WALディスク同期を改善




  PgCon 2012
  Robert Haas 発表資料 (2012/5/18) より


                                    日本PostgreSQLユーザ会   12
書き込みトランザクション改善
 グループコミットの改善で、書き込みが大量に発
  生するようなケースの性能が向上
  SRA OSS Inc.様のセミナー資料で測定結果が参照可
   能
 注意:commit_delayがコミット以外のWALフ
  ラッシュにも適用されるようになった




              日本PostgreSQLユーザ会   13
Index Only Scan(1)
 インデックスだけを読んで処理できる
  テーブルデータにアクセスが省略できるので、通常の
   検索より高速!
  ただし、クエリに必要な全ての列(SELECT
   句、WHERE句、Etc.)がインデックス定義に含まれ
   ていることが条件
 類似機能は他のDBMSにも
  MySQLでの「Covering Index」
  Oracleでの「INDEX (FAST) FULL SCAN」



                  日本PostgreSQLユーザ会    14
Index Only Scan(2)
 実行例(enable_indexonlyscan=off)
postgres=# EXPLAIN (ANALYZE, BUFFERS)
postgres-# SELECT count(*) FROM pgbench_accounts;
                       QUERY PLAN
-----------------------------------------------------------
 Aggregate (cost=288935.08..288935.09 rows=1 width=4)
            (actual time=13486.255..13486.255 rows=1 loops=1)
   Buffers: shared hit=32 read=163903
   -> Seq Scan on pgbench_accounts
           (cost=0.00..263935.06 rows=10000006 width=4)
           (actual time=23.478..12261.668 rows=10000000 loops=1)
         Buffers: shared hit=32 read=163903
 Total runtime: 13486.385 ms
(5 rows)




                              日本PostgreSQLユーザ会                     15
Index Only Scan(3)
 実行例(enable_indexonlyscan=on)
postgres=# EXPLAIN (ANALYZE, BUFFERS)
postgres-# SELECT count(*) FROM pgbench_accounts;
                          QUERY PLAN
--------------------------------------------------------------
 Aggregate (cost=284699.32..284699.33 rows=1 width=0)
            (actual time=2466.584..2466.585 rows=1 loops=1)
   Buffers: shared read=27328
   -> Index Only Scan using pgbench_accounts_pkey
           on pgbench_accounts
           (cost=0.00..259699.31 rows=10000006 width=0)
           (actual time=0.093..1516.373 rows=10000000 loops=1)
         Heap Fetches: 0
         Buffers: shared read=27328
 Total runtime: 2466.709 ms
(6 rows)                              Seq Scanよりも約 5.5      倍高速!


                             日本PostgreSQLユーザ会                  16
Index Only Scan(4)
 なんで今までなかったの?
  PostgreSQLでは、同時実行性と読み取り一貫性を保
   証するために、追記型アーキテクチャを採用している
  更新や削除が発生すると、行の新しいバージョンを
   INSERTと同じようにページ内の空き領域に追加する
  検索時には、見つかったタプルが自トランザクション
   が参照すべきバージョンかを判断する
  9.2から可視性マップ(Visibility Map)がクラッシュ
   セーフになり、(条件付ではあるが)テーブルデータ
   を見なくてもタプルの可視性判定ができるようになっ
   た


                日本PostgreSQLユーザ会   17
Index Only Scan(5)
 可視性マップって何?
  PostgreSQLが「ページ内のすべてのタプルが全ての
   現存トランザクションから可視であるか?」を保存し
   ているビットマップのこと
  「<relfilenode>_vm」というファイルに保存されて
   いる
  VACUUM中に内容を更新する




              日本PostgreSQLユーザ会   18
Index Only Scan(6)
 Index Only Scanの流れ
   通常のインデックススキャンと同様にインデックスを
    たどってインデックスタプルを取得
     テーブルタプルのブロック番号とページ内オフセットが判明
   テーブルタプルに対応するVisibility Mapページを取得
     Visibility Mapページからテーブル参照要否が判明
   テーブルページからテーブルタプル取得
     テーブルを見る必要がなければスキップ
   (インデックス|テーブル)タプルから結果生成




                   日本PostgreSQLユーザ会    19
Index Only Scan(7)
 要VACUUM!
  もちろんautovacuumでOK
  ANALYZEでは可視性マップは更新されません!
  ロングトランザクションに注意!
 更新されないデータは同じページ                postgres
  に!                             executor
  可視性マップはページ単位の管理なの
   で、更新されないレコードが同じペー                      不要!
   ジに集まると効果的

                                 visibility
                                   map

              日本PostgreSQLユーザ会                  20
レプリケーション拡張(1)
 カスケード構成に対応

             マスターサーバ
              Postgres



     レプリ            レプリ              レプリ
     ケーション          ケーション            ケーション
 スタンバイサーバ    スタンバイサーバ                スタンバイサーバ
  Postgres    Postgres                Postgres




                  日本PostgreSQLユーザ会               21
レプリケーション拡張(2)
 カスケード構成に対応
                                             オンライン物理バックアップを
                                               スタンバイから取れる

 マスタサーバの             マスターサーバ
  負荷軽減                                             pg_basebackup
                      Postgres
                                                   pg_receivexlog

     レプリ
     ケーション

 スタンバイサーバ        スタンバイサーバ                     スタンバイサーバ
  Postgres   レプリ
                      Postgres      レプリ        Postgres
             ケーション                  ケーション




                          日本PostgreSQLユーザ会                          22
レプリケーション拡張(3)
 同期レプリケーションにremote_writeが追加
  GUCパラメータ「synchronous_commit」で設定
  従来の「on」設定より軽量・低信頼な同期レプリケー
   ション
        設定値            意味

        on             自機のディスク同期を待つ
                       レプリケーション先のディスク同期を待つ
   安全
        remote_write   自機のディスク同期を待つ
                       レプリケーション先の書き込み完了を待つ
        local          自機のディスク同期を待つ
   高速                  レプリケーション先の処理は待たない
        off            自機のディスク同期を待たない
                       レプリケーション先の処理は待たない

                       日本PostgreSQLユーザ会      23
レプリケーション拡張(4)
 remote_writeの場合は
  自機でのWAL書き込み+ディスク同期
  レプリケーション先でのWAL書き込み
                      ②
                  WAL書き込み&                   ④
                   ディスク同期                 WAL書き込み
          ①                        ③
       COMMIT発行         WAL      WAL転送         WAL
                  マスターサーバ                スタンバイサーバ
   クライアント
                    Postgres              Postgres


          ⑥                       ⑤
       COMMIT完了                WAL受領通知
                    日本PostgreSQLユーザ会                 24
レプリケーション拡張(5)
 pg_receivexlogコマンドの追加
   スタンバイサーバとして上流からストリーミングWAL
    を受け取ってファイルに保存するコマンド
   WALの多重化を実現できる
   WALが保存されたディレクトリはリカバリ時にアーカ
    イブWAL保存場所として使用可能
   【注意】バックアップラベルファイルやヒストリファ
    イルは保存されない
 pg_xlog_location_diff()関数の追加
   レプリケーションがどの程度遅れているかを知るのに
    便利

                 日本PostgreSQLユーザ会   25
範囲データ型(1)
 下限値・上限値で範囲を表現するデータ型
  境界値を含む/含まないを指定可能
     '[1,3)'は「1以上、3未満」を表す
     境界値にNULLを使うと無限区間に
  基本的なデータ用の範囲型と演算子は組み込みで提供
     CREATE TYPE AS RANGE文で新しい範囲型も定義可能
  データ型         要素データ型          演算子             型         意味
 int4range   int              A && B          bool   AとBが重なっている
 int8range   bigint           A @> B          bool   AがBを含む
 numrange    numeric           A -|- B        bool   AとBが隣接している
 tsrange     timestamp         A*B            範囲     AとBの共通範囲
 tstzrange   timestamptz       A+B            範囲     AとBの合併範囲
 daterange   date              A-B            範囲     AからBを除いた範囲
                           日本PostgreSQLユーザ会                     26
範囲データ型(2)
 8.4で導入された排他制約と組み合わせることで
  、「重なり」がないかを検査する制約を定義可能
postgres=# d reservation
      Table "public.reservation"                   同じ部屋番号で
    Column    |   Type    | Modifiers              時間帯が重なる
-------------+-----------+-----------           予約は不可という制約
 id           | integer   | not null
 room_id      | integer   | not null
 during       | tstzrange | not null                  *Note*
 reserver_id | integer    |                     GiSTでint型を使うには
 memo         | text      |                        contrib/btree_gist
Indexes:                                                 が必要
     "reservation_pkey" PRIMARY KEY, btree (id)
     "reservation_during_excl"
     EXCLUDE USING gist (room_id WITH =, during WITH &&)



                               日本PostgreSQLユーザ会                    27
範囲データ型(3)
 8.4で導入された排他制約と組み合わせることで
  、「重なり」がないかを検査する制約を定義可能
postgres=# INSERT INTO reservation (room_id, during, reserver)
postgres-# VALUES
postgres-# (2, '[2012-06-16 14:00,2012-06-16 14:45)'::tstzrange, 1);
INSERT 0 1
postgres=# INSERT INTO reservation (room_id, during, reserver)
postgres-# VALUES
postgres-# (2, '[2012-06-16 14:30,2012-06-16 14:45)'::tstzrange, 1);
ERROR: conflicting key value violates exclusion constraint "reserva
tion_during_excl"
DETAIL: Key (room, during)=(2, ["2012-06-16 14:30:00+09", "2012-06-
16 17:00:00+09")) conflicts with existing key (room, during)=(2, ["2
012-06-16 14:00:00+09","2012-06-16 14:45:00+09")).




                              日本PostgreSQLユーザ会                   28
JSONデータ型(1)
 格納時の構文チェックのついたtext型
 PostgreSQLの行や配列から変換可能
  array_to_json()
  row_to_json()
 日本語の使用は次リリース(Beta3?)から
 pl/v8*1ではJavaScriptで関数が書けるので親和
  性が高い?


              *1 http://code.google.com/p/plv8js/wiki/PLV8

                        日本PostgreSQLユーザ会                     29
JSONデータ型(2)
 使用例(テーブル定義)
postgres=# d users
      Table "public.users"
 Column | Type     | Modifiers
--------+---------+-----------
 id      | integer | not null
 name    | text    | not null
 data    | json    |
Indexes:
    "users_pkey" PRIMARY KEY, btree (id)

postgres=# SELECT * FROM users ORDER BY id;
 id | name |                            data
----+------+------------------------------------------------------------
  1 | foo | {"last_access":"2012-01-01 12:34:56","features":"[1,3,5]"}
  2 | bar | {"last_access":"2011-11-25 23:42:41","features":"[2,3,6]"}
(2 rows)


                                日本PostgreSQLユーザ会                      30
JSONデータ型(3)
 使用例(array_to_json()関数)



postgres=# SELECT array_to_json('{1,2,3}'::int[]);
 array_to_json
---------------
 [1,2,3]
(1 row)
postgres=#




                           日本PostgreSQLユーザ会          31
JSONデータ型(4)
 使用例(row_to_json()関数)
postgres=# SELECT row_to_json(row(id, name))
postgres-# FROM foo WHERE id = 1;
        row_to_json
--------------------------
 {"f1":1,"f2":"name_1"}
(1 row)
postgres=# SELECT row_to_json(t) FROM
postgres-# (SELECT id, name FROM t WHERE id = 1) t;
        row_to_json
--------------------------
 {"id":1,"name":"name_1"}
(1 row)


                           日本PostgreSQLユーザ会           32
JSONデータ型(5)
 PGXNに外部モジュールとしてjson_accessors
  が出ました!
  http://pgxn.org/dist/json_accessors/
 どんな機能が?
  json_array_to_<type>_array()
    JSON配列からPostgreSQL型配列に変換
  json_get_<type>()
    JSONから属性名指定でスカラ値を取得
  json_get_<type>_array()
    JSONから属性名指定で配列値を取得


                       日本PostgreSQLユーザ会   33
JSONデータ型(6)
 使用例(json_get_text()関数)

postgres=# select * from users order by id;
-[ RECORD 1 ]----------------------------------------------------------
id         | 1
name       | Saito
attributes | {"carrior":"softbank", "model":"iPhone-5","maker":"Apple"}
-[ RECORD 2 ]----------------------------------------------------------
id         | 2
name       | Takahashi
attributes | {"carrior":"au", "model":"A01","maker":"iida"}
postgres=# SELECT name FROM users WHERE
postgres-# json_get_text(attributes::text, 'maker') = 'Apple';
 name
-------
                              引数がtext型なので、
 Saito
(1 row)
                              キャストが必要です


                                  日本PostgreSQLユーザ会                    34
カスタムプラン
 EXECUTEのパラメータを考慮したプランを生成
postgres=# PREPARE s(int) AS SELECT * FROM t WHERE id < $1;
PREPARE
postgres=# EXPLAIN (COSTS off) EXECUTE s(1);
          QUERY PLAN
------------------------------
 Index Scan using t_pkey on t
   Index Cond: (id < 1)
(2 rows)

postgres=# EXPLAIN (COSTS off) EXECUTE s(1000000);
         QUERY PLAN
--------------------------
 Seq Scan on t
   Filter: (id < 1000000)
(2 rows)

                           日本PostgreSQLユーザ会               35
Parameterized Paths(1)
 Nested LoopのInner側で、直接結合しないテー
  ブルの値を使ったインデックススキャンが可能に
  なった
 これまでは、直接結合する相手テーブルの値また
  は固定値のみが使用できた
 インデックススキャンの適用可能性が広がり、複
  雑な結合のあるクエリに性能向上のチャンスが生
  まれた




              日本PostgreSQLユーザ会   36
Parameterized Paths(2)
 9.1ではbはSeqScanだが…

postgres=# EXPLAIN (COSTS false) SELECT 1 FROM c WHERE EXISTS (
postgres(# SELECT * FROM a JOIN b USING (b_id)
postgres(# WHERE b.c_id = c.c_id) AND c.value = 1;
                QUERY PLAN
-------------------------------------------
 Nested Loop Semi Join
   Join Filter: (c.c_id = b.c_id)
   -> Index Scan using c_value_key on c
         Index Cond: (value = 1)
   -> Nested Loop
         -> Seq Scan on b
         -> Index Scan using a__b_id on a
               Index Cond: (b_id = b.b_id)
(8 rows)



                              日本PostgreSQLユーザ会                    37
Parameterized Paths(3)
 9.2ではcテーブルの値を使うIndexScanに!

postgres=# EXPLAIN (COSTS false) SELECT 1 FROM c WHERE EXISTS (
postgres(# SELECT * FROM a JOIN b USING (b_id)
postgres(# WHERE b.c_id = c.c_id) AND c.value = 1;
                   QUERY PLAN
------------------------------------------------
 Nested Loop Semi Join
   -> Index Scan using c_value_key on c
         Index Cond: (value = 1)
   -> Nested Loop
         -> Index Scan using b__c_id on b
               Index Cond: (c_id = c.c_id)
         -> Index Only Scan using a__b_id on a
               Index Cond: (b_id = b.b_id)
(8 rows)



                              日本PostgreSQLユーザ会                    38
その他の拡張(1)
 NOT VALID CHECK制約
  CHECK制約作成時に既存のデータを検査しない
  制約作成以降のデータ追加・更新は検査される
  ALTER TABLE VALIDATE CONSTRAINT <制約名>
   で現在のデータを検査可能
 NOT INHERIT CHECK制約
  継承関係を辿って子テーブルに制約が伝搬しない
  親テーブルにデータを入れたくない、といったケース
   で有効



                 日本PostgreSQLユーザ会      39
その他の拡張(2)
 インデックス
   Unbalanced treeをサポートするSP-GiST(Space-
    Partitioned GiST)アクセスメソッドの追加
 セキュリティ
   セキュリティバリアビュー
     VIEWのsecurity_barrier属性と関数のLEAKPROOF属性を組
      み合わせることで、関数を通じてアクセス不可のカラム内容が
      漏れることを防ぐ
   CREATE や DROP もSE-Postgresで管理可能
 ALTER TABLEでの .. ALTER TYPE の改善
   全レコード書き替えは必要なときだけ

                    日本PostgreSQLユーザ会        40
その他の拡張(3)
 管理機能
   contrib/pg_stat_statement
      類似(定数値だけが異なるなど)SQLを集約してくれる
      I/O情報も収集
   実行時統計情報の拡充
      pg_stat_bgwriter チェックポイント動作の情報
      pg_stat_database デッドロックカウンタ
 libpq
   単一行モード(プロトコルレベルカーソル)のサポー
    ト


                      日本PostgreSQLユーザ会   41
その他の拡張(4)
 省電力
  定期的にスリープから復帰する補助プロセスを減らす
   ことで、処理が無い時間帯においてサーバ省電力機能
   が効果的に働く
    11個/秒→0.4個/秒
 各種プランナ、executor改善
  高速ソート
  定数式のキャッシュ利用
  配列内の各要素まで考慮したコスト見積もり




                    日本PostgreSQLユーザ会   42
その他の拡張(5)
 psqlメタコマンド
  ¥x auto
    横幅の広い結果を自動的に縦表示に
  ¥setenv
    psqlコマンドの環境変数をセッション中に変更可能
  ¥timing
    エラーになった処理も時間表示




                日本PostgreSQLユーザ会   43
ご清聴ありがとうございました




      日本PostgreSQLユーザ会   44
日本PostgreSQLユーザ会のご紹介
 NPO法人として活動中
  http://www.postgresql.jp/
 活動目的
  PostgreSQLの研究開発および普及促進
    勉強会開催
    日本語ドキュメント翻訳
    メーリングリスト運営
  PostgreSQLに関する情報の公開
    Let's Postgres(http://lets.postgresql.jp/)
  会員相互および外部との技術的・人間的交流


                        日本PostgreSQLユーザ会          45

Contenu connexe

Tendances

C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努Insight Technology, Inc.
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)Uptime Technologies LLC (JP)
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングKosuke Kida
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)Hironobu Suzuki
 
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6Toshi Harada
 
OSS-DB Goldへの第一歩~実践!運用管理~
OSS-DB Goldへの第一歩~実践!運用管理~OSS-DB Goldへの第一歩~実践!運用管理~
OSS-DB Goldへの第一歩~実践!運用管理~Shigeru Hanada
 
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)Chika SATO
 
JPUG 沖縄支部セミナー資料(2013-04-27)
JPUG 沖縄支部セミナー資料(2013-04-27)JPUG 沖縄支部セミナー資料(2013-04-27)
JPUG 沖縄支部セミナー資料(2013-04-27)Chika SATO
 
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaShigeru Hanada
 
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#135ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13Uptime Technologies LLC (JP)
 
明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)kasaharatt
 
PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介Masahiko Sawada
 
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会Shigeru Hanada
 
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatypeOsc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatypeToshi Harada
 
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota WatabeInsight Technology, Inc.
 
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告Uptime Technologies LLC (JP)
 
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 東京 2014Shigeru Hanada
 

Tendances (20)

C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
 
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
 
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6
 
OSS-DB Goldへの第一歩~実践!運用管理~
OSS-DB Goldへの第一歩~実践!運用管理~OSS-DB Goldへの第一歩~実践!運用管理~
OSS-DB Goldへの第一歩~実践!運用管理~
 
PostgreSQLアーキテクチャ入門
PostgreSQLアーキテクチャ入門PostgreSQLアーキテクチャ入門
PostgreSQLアーキテクチャ入門
 
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
 
JPUG 沖縄支部セミナー資料(2013-04-27)
JPUG 沖縄支部セミナー資料(2013-04-27)JPUG 沖縄支部セミナー資料(2013-04-27)
JPUG 沖縄支部セミナー資料(2013-04-27)
 
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
 
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#135ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
 
明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)
 
PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介
 
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
 
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatypeOsc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatype
 
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
 
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
 
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 Query Cache - "pqc"
PostgreSQL Query Cache - "pqc"PostgreSQL Query Cache - "pqc"
PostgreSQL Query Cache - "pqc"
 

En vedette

あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界Yoshinori Nakanishi
 
Mroonga開発者が来たぞ!
Mroonga開発者が来たぞ!Mroonga開発者が来たぞ!
Mroonga開発者が来たぞ!Kouhei Sutou
 
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告Amazon Web Services Japan
 
re:Invent 行ってきた
re:Invent 行ってきたre:Invent 行ってきた
re:Invent 行ってきたYusuke Komahara
 
構成情報データベースをGitで管理したいネットワーク運用者の憂鬱
構成情報データベースをGitで管理したいネットワーク運用者の憂鬱構成情報データベースをGitで管理したいネットワーク運用者の憂鬱
構成情報データベースをGitで管理したいネットワーク運用者の憂鬱Yuya Rin
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターンSoudai Sone
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~Miki Shimogai
 
Migr8.rb チュートリアル
Migr8.rb チュートリアルMigr8.rb チュートリアル
Migr8.rb チュートリアルkwatch
 
今すぐ使えるクラウドとPostgreSQL
今すぐ使えるクラウドとPostgreSQL今すぐ使えるクラウドとPostgreSQL
今すぐ使えるクラウドとPostgreSQLSoudai Sone
 
HAWQをCDHで動かしてみた
HAWQをCDHで動かしてみたHAWQをCDHで動かしてみた
HAWQをCDHで動かしてみたadachij2002
 
Ivsctonightandday2016winter moringsession awsreinvent2016recap
Ivsctonightandday2016winter moringsession awsreinvent2016recapIvsctonightandday2016winter moringsession awsreinvent2016recap
Ivsctonightandday2016winter moringsession awsreinvent2016recapTadashi Okazaki
 
初心者がAWSでWebサービスを始めるまで 〜たった3ステップでWebページは公開できる〜
初心者がAWSでWebサービスを始めるまで 〜たった3ステップでWebページは公開できる〜初心者がAWSでWebサービスを始めるまで 〜たった3ステップでWebページは公開できる〜
初心者がAWSでWebサービスを始めるまで 〜たった3ステップでWebページは公開できる〜Takeshi Wakamatsu
 
レシピブログのサービス設計と今後の展望
レシピブログのサービス設計と今後の展望レシピブログのサービス設計と今後の展望
レシピブログのサービス設計と今後の展望Masaki Nakagawa
 
【自社プロダクト開発エンジニア募集中】エーピーコミュニケーションズ 先進開発グループ
【自社プロダクト開発エンジニア募集中】エーピーコミュニケーションズ 先進開発グループ【自社プロダクト開発エンジニア募集中】エーピーコミュニケーションズ 先進開発グループ
【自社プロダクト開発エンジニア募集中】エーピーコミュニケーションズ 先進開発グループAPCommunications-recruit
 
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo NagataInsight Technology, Inc.
 
最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介
最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介
最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介IBM Analytics Japan
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsKohei KaiGai
 
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016Takayuki Shimizukawa
 
サーバーワークス re:invent_2016~新サービス・アップデート紹介~
サーバーワークス re:invent_2016~新サービス・アップデート紹介~サーバーワークス re:invent_2016~新サービス・アップデート紹介~
サーバーワークス re:invent_2016~新サービス・アップデート紹介~Serverworks Co.,Ltd.
 
20160927_守るべきは、大量の情報資産を管理するデータベース! ~ユーザ事例から見るデータベースのセキュリティ対策~ by 株式会社インサイトテクノ...
20160927_守るべきは、大量の情報資産を管理するデータベース! ~ユーザ事例から見るデータベースのセキュリティ対策~ by 株式会社インサイトテクノ...20160927_守るべきは、大量の情報資産を管理するデータベース! ~ユーザ事例から見るデータベースのセキュリティ対策~ by 株式会社インサイトテクノ...
20160927_守るべきは、大量の情報資産を管理するデータベース! ~ユーザ事例から見るデータベースのセキュリティ対策~ by 株式会社インサイトテクノ...Insight Technology, Inc.
 

En vedette (20)

あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
Mroonga開発者が来たぞ!
Mroonga開発者が来たぞ!Mroonga開発者が来たぞ!
Mroonga開発者が来たぞ!
 
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
 
re:Invent 行ってきた
re:Invent 行ってきたre:Invent 行ってきた
re:Invent 行ってきた
 
構成情報データベースをGitで管理したいネットワーク運用者の憂鬱
構成情報データベースをGitで管理したいネットワーク運用者の憂鬱構成情報データベースをGitで管理したいネットワーク運用者の憂鬱
構成情報データベースをGitで管理したいネットワーク運用者の憂鬱
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 
Migr8.rb チュートリアル
Migr8.rb チュートリアルMigr8.rb チュートリアル
Migr8.rb チュートリアル
 
今すぐ使えるクラウドとPostgreSQL
今すぐ使えるクラウドとPostgreSQL今すぐ使えるクラウドとPostgreSQL
今すぐ使えるクラウドとPostgreSQL
 
HAWQをCDHで動かしてみた
HAWQをCDHで動かしてみたHAWQをCDHで動かしてみた
HAWQをCDHで動かしてみた
 
Ivsctonightandday2016winter moringsession awsreinvent2016recap
Ivsctonightandday2016winter moringsession awsreinvent2016recapIvsctonightandday2016winter moringsession awsreinvent2016recap
Ivsctonightandday2016winter moringsession awsreinvent2016recap
 
初心者がAWSでWebサービスを始めるまで 〜たった3ステップでWebページは公開できる〜
初心者がAWSでWebサービスを始めるまで 〜たった3ステップでWebページは公開できる〜初心者がAWSでWebサービスを始めるまで 〜たった3ステップでWebページは公開できる〜
初心者がAWSでWebサービスを始めるまで 〜たった3ステップでWebページは公開できる〜
 
レシピブログのサービス設計と今後の展望
レシピブログのサービス設計と今後の展望レシピブログのサービス設計と今後の展望
レシピブログのサービス設計と今後の展望
 
【自社プロダクト開発エンジニア募集中】エーピーコミュニケーションズ 先進開発グループ
【自社プロダクト開発エンジニア募集中】エーピーコミュニケーションズ 先進開発グループ【自社プロダクト開発エンジニア募集中】エーピーコミュニケーションズ 先進開発グループ
【自社プロダクト開発エンジニア募集中】エーピーコミュニケーションズ 先進開発グループ
 
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
 
最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介
最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介
最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
 
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016
 
サーバーワークス re:invent_2016~新サービス・アップデート紹介~
サーバーワークス re:invent_2016~新サービス・アップデート紹介~サーバーワークス re:invent_2016~新サービス・アップデート紹介~
サーバーワークス re:invent_2016~新サービス・アップデート紹介~
 
20160927_守るべきは、大量の情報資産を管理するデータベース! ~ユーザ事例から見るデータベースのセキュリティ対策~ by 株式会社インサイトテクノ...
20160927_守るべきは、大量の情報資産を管理するデータベース! ~ユーザ事例から見るデータベースのセキュリティ対策~ by 株式会社インサイトテクノ...20160927_守るべきは、大量の情報資産を管理するデータベース! ~ユーザ事例から見るデータベースのセキュリティ対策~ by 株式会社インサイトテクノ...
20160927_守るべきは、大量の情報資産を管理するデータベース! ~ユーザ事例から見るデータベースのセキュリティ対策~ by 株式会社インサイトテクノ...
 

Similaire à PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012

Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6Toshi Harada
 
JTF2021w F3 postgresql frontline
JTF2021w F3 postgresql frontlineJTF2021w F3 postgresql frontline
JTF2021w F3 postgresql frontlineHaruka Takatsuka
 
20171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-1020171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-10Toshi Harada
 
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]Kohei KaiGai
 
20171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-1020171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-10Toshi Harada
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)Kosuke Kida
 
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_TokyoKohei KaiGai
 
M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...
M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...
M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...日本マイクロソフト株式会社
 
20171220_hbstudy80_pgstrom
20171220_hbstudy80_pgstrom20171220_hbstudy80_pgstrom
20171220_hbstudy80_pgstromKohei KaiGai
 
[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いているAkihiro Kuwano
 
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊Supership株式会社
 
(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速するKohei KaiGai
 
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】Kohei KaiGai
 
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまでやりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまでDaisuke Masubuchi
 
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」Rescale Japan株式会社
 
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Daiyu Hatakeyama
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Masayuki Ozawa
 

Similaire à PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012 (20)

Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6
 
JTF2021w F3 postgresql frontline
JTF2021w F3 postgresql frontlineJTF2021w F3 postgresql frontline
JTF2021w F3 postgresql frontline
 
Prometech Particleworks on Rescale
Prometech Particleworks on RescalePrometech Particleworks on Rescale
Prometech Particleworks on Rescale
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
20171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-1020171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-10
 
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
 
20171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-1020171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-10
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)
 
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
 
M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...
M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...
M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...
 
20171220_hbstudy80_pgstrom
20171220_hbstudy80_pgstrom20171220_hbstudy80_pgstrom
20171220_hbstudy80_pgstrom
 
[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている
 
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
 
(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する
 
[Japan Tech summit 2017] DAL 003
[Japan Tech summit 2017] DAL 003[Japan Tech summit 2017] DAL 003
[Japan Tech summit 2017] DAL 003
 
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
 
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまでやりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
 
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
 
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
 

Plus de Shigeru Hanada

PostgreSQL 10 新機能 @OSC 2017 Fukuoka
PostgreSQL 10 新機能 @OSC 2017 FukuokaPostgreSQL 10 新機能 @OSC 2017 Fukuoka
PostgreSQL 10 新機能 @OSC 2017 FukuokaShigeru Hanada
 
PostgreSQL 10 新機能 @オープンセミナー香川 2017
PostgreSQL 10 新機能 @オープンセミナー香川 2017PostgreSQL 10 新機能 @オープンセミナー香川 2017
PostgreSQL 10 新機能 @オープンセミナー香川 2017Shigeru Hanada
 
Foreign Data Wrapper Enhancements
Foreign Data Wrapper EnhancementsForeign Data Wrapper Enhancements
Foreign Data Wrapper EnhancementsShigeru Hanada
 
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会Shigeru Hanada
 
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会Shigeru Hanada
 
9.3で進化した外部テーブル
9.3で進化した外部テーブル9.3で進化した外部テーブル
9.3で進化した外部テーブルShigeru Hanada
 
Extending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 JapanExtending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 JapanShigeru Hanada
 
外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張Shigeru Hanada
 

Plus de Shigeru Hanada (8)

PostgreSQL 10 新機能 @OSC 2017 Fukuoka
PostgreSQL 10 新機能 @OSC 2017 FukuokaPostgreSQL 10 新機能 @OSC 2017 Fukuoka
PostgreSQL 10 新機能 @OSC 2017 Fukuoka
 
PostgreSQL 10 新機能 @オープンセミナー香川 2017
PostgreSQL 10 新機能 @オープンセミナー香川 2017PostgreSQL 10 新機能 @オープンセミナー香川 2017
PostgreSQL 10 新機能 @オープンセミナー香川 2017
 
Foreign Data Wrapper Enhancements
Foreign Data Wrapper EnhancementsForeign Data Wrapper Enhancements
Foreign Data Wrapper Enhancements
 
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
 
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
 
9.3で進化した外部テーブル
9.3で進化した外部テーブル9.3で進化した外部テーブル
9.3で進化した外部テーブル
 
Extending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 JapanExtending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 Japan
 
外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張
 

Dernier

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Dernier (8)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012

  • 1. PostgreSQL9.2新機能 新潟オープンソースセミナー2012 2012-11-03 日本PostgreSQLユーザ会 花田 茂
  • 2. 謝辞  この資料は SRA OSS, Inc. の以前の講演資料をベー スにしております。ご提供承諾いただきありがとうご ざいます。 日本PostgreSQLユーザ会 2
  • 3. 自己紹介  花田 茂(はなだ しげる)  所属: 株式会社メトロシステムズ(東京・池袋)  Twitter: @s87  blog: http://d.hatena.jp/s87/  Mail: shigeru.hanada@gmail.com  PostgreSQLとの関わり  2003年頃から周辺ツール開発、性能検証など  2009年頃からPostgreSQL本体開発(SQL/MED他)  2011年から日本語ドキュメント翻訳 日本PostgreSQLユーザ会 3
  • 4. PostgreSQL のこれまでと現在 日本PostgreSQLユーザ会 4
  • 5. 改めて・・・ PostgreSQL とは  代表的なオープンソースRDBMSのひとつ  Ingres(1970~ UCB) を先祖に持つ  PostgreSQL 6.0 (1996 ~) から 15年以上の歴史  BSDタイプのライセンスで配布  PostgreSQL Global Development Group と University of California が著作権を持つ  ひとつのオーナー企業、オーナー個人を持たない  PostgreSQL開発に時間を割く技術者を提供している 企業がいくつかある/その企業群も少しずつ変遷して いる 日本PostgreSQLユーザ会 5
  • 6. PostgreSQL開発体制 支援企業 Contributors 藤井雅雄 板垣貴裕 原田均 Major Contributors 石井達夫 : 30~40名 Core Team Josh Berkus Tom Lane Peter Eisentraut Magnus Hagander Bruce Momjian Dave Page 開発コミュニ ティ 日本PostgreSQLユーザ会 6
  • 7. PostgreSQLの歩み PostgreSQL のコードサイズとリリース 同期レプリケーション 120000 外部テーブル 100000 更新の 高速化 ビットマップ プリペアド スキャン コードサイズ (byte) 80000 ステートメント レプリケーション 60000 並列実行 Windows 64bit 外部キー、 VACUUM JOIN構文 40000 ウィンドウ関数 CPU 再帰SQL PITR、 スケール 20000 Windows スキーマ トランザク ションログ 0 PG 7.0 PG 7.1 PG 7.2 PG 7.3 PG 7.4 PG 8.0 PG 8.1 PG 8.2 PG 8.3 PG 8.4 PG 9.0 PG 9.1 | | | | | | 2001年 2002年 2005年 2006年 2009年 2011年 4月 11月 1月 12月 7月 9月 日本PostgreSQLユーザ会 7
  • 8. 9.1 のおさらい 日本PostgreSQLユーザ会 8
  • 9. 9.1 のおさらい(1)  (準)同期レプリケーションに対応  9.0 でサポートした物理レプリケーションを拡張  pg_basebackup など利便性向上 リクエスト マスターサーバ スタンバイサーバ クライア Postgres WAL Postgres ント 適用 データ WAL データ WAL情報転送 日本PostgreSQLユーザ会 9
  • 10. 9.1 のおさらい(2)  外部テーブル(SQL/MED)の枠組み  CSVファイルのラッパーが付属  拡張モジュール枠組み(CREATE EXTENSION)  UNLOGGEDテーブル(高速/低信頼)  空間近傍検索(k-NN GiST インデックス対応)  SE-Postgres(SE-Linux準拠のセキュリティ)  N-gram全文検索  述語ロックSERIALIZABLE、更新WITH句、 ビュートリガ、カラムロケール指定、etc 日本PostgreSQLユーザ会 10
  • 11. PostgreSQL 9.2 の拡張 日本PostgreSQLユーザ会 11
  • 12. CPUスケール対応  Readは コア数64までスケール ⇒ PostgreSQL 8.2 で改良 コア数 8~12 まで ・Fast Pathロック ・直列化部分を短時間に ・WALディスク同期を改善 PgCon 2012 Robert Haas 発表資料 (2012/5/18) より 日本PostgreSQLユーザ会 12
  • 13. 書き込みトランザクション改善  グループコミットの改善で、書き込みが大量に発 生するようなケースの性能が向上  SRA OSS Inc.様のセミナー資料で測定結果が参照可 能  注意:commit_delayがコミット以外のWALフ ラッシュにも適用されるようになった 日本PostgreSQLユーザ会 13
  • 14. Index Only Scan(1)  インデックスだけを読んで処理できる  テーブルデータにアクセスが省略できるので、通常の 検索より高速!  ただし、クエリに必要な全ての列(SELECT 句、WHERE句、Etc.)がインデックス定義に含まれ ていることが条件  類似機能は他のDBMSにも  MySQLでの「Covering Index」  Oracleでの「INDEX (FAST) FULL SCAN」 日本PostgreSQLユーザ会 14
  • 15. Index Only Scan(2)  実行例(enable_indexonlyscan=off) postgres=# EXPLAIN (ANALYZE, BUFFERS) postgres-# SELECT count(*) FROM pgbench_accounts; QUERY PLAN ----------------------------------------------------------- Aggregate (cost=288935.08..288935.09 rows=1 width=4) (actual time=13486.255..13486.255 rows=1 loops=1) Buffers: shared hit=32 read=163903 -> Seq Scan on pgbench_accounts (cost=0.00..263935.06 rows=10000006 width=4) (actual time=23.478..12261.668 rows=10000000 loops=1) Buffers: shared hit=32 read=163903 Total runtime: 13486.385 ms (5 rows) 日本PostgreSQLユーザ会 15
  • 16. Index Only Scan(3)  実行例(enable_indexonlyscan=on) postgres=# EXPLAIN (ANALYZE, BUFFERS) postgres-# SELECT count(*) FROM pgbench_accounts; QUERY PLAN -------------------------------------------------------------- Aggregate (cost=284699.32..284699.33 rows=1 width=0) (actual time=2466.584..2466.585 rows=1 loops=1) Buffers: shared read=27328 -> Index Only Scan using pgbench_accounts_pkey on pgbench_accounts (cost=0.00..259699.31 rows=10000006 width=0) (actual time=0.093..1516.373 rows=10000000 loops=1) Heap Fetches: 0 Buffers: shared read=27328 Total runtime: 2466.709 ms (6 rows) Seq Scanよりも約 5.5 倍高速! 日本PostgreSQLユーザ会 16
  • 17. Index Only Scan(4)  なんで今までなかったの?  PostgreSQLでは、同時実行性と読み取り一貫性を保 証するために、追記型アーキテクチャを採用している  更新や削除が発生すると、行の新しいバージョンを INSERTと同じようにページ内の空き領域に追加する  検索時には、見つかったタプルが自トランザクション が参照すべきバージョンかを判断する  9.2から可視性マップ(Visibility Map)がクラッシュ セーフになり、(条件付ではあるが)テーブルデータ を見なくてもタプルの可視性判定ができるようになっ た 日本PostgreSQLユーザ会 17
  • 18. Index Only Scan(5)  可視性マップって何?  PostgreSQLが「ページ内のすべてのタプルが全ての 現存トランザクションから可視であるか?」を保存し ているビットマップのこと  「<relfilenode>_vm」というファイルに保存されて いる  VACUUM中に内容を更新する 日本PostgreSQLユーザ会 18
  • 19. Index Only Scan(6)  Index Only Scanの流れ  通常のインデックススキャンと同様にインデックスを たどってインデックスタプルを取得  テーブルタプルのブロック番号とページ内オフセットが判明  テーブルタプルに対応するVisibility Mapページを取得  Visibility Mapページからテーブル参照要否が判明  テーブルページからテーブルタプル取得  テーブルを見る必要がなければスキップ  (インデックス|テーブル)タプルから結果生成 日本PostgreSQLユーザ会 19
  • 20. Index Only Scan(7)  要VACUUM!  もちろんautovacuumでOK  ANALYZEでは可視性マップは更新されません!  ロングトランザクションに注意!  更新されないデータは同じページ postgres に! executor  可視性マップはページ単位の管理なの で、更新されないレコードが同じペー 不要! ジに集まると効果的 visibility map 日本PostgreSQLユーザ会 20
  • 21. レプリケーション拡張(1)  カスケード構成に対応 マスターサーバ Postgres レプリ レプリ レプリ ケーション ケーション ケーション スタンバイサーバ スタンバイサーバ スタンバイサーバ Postgres Postgres Postgres 日本PostgreSQLユーザ会 21
  • 22. レプリケーション拡張(2)  カスケード構成に対応 オンライン物理バックアップを スタンバイから取れる マスタサーバの マスターサーバ 負荷軽減 pg_basebackup Postgres pg_receivexlog レプリ ケーション スタンバイサーバ スタンバイサーバ スタンバイサーバ Postgres レプリ Postgres レプリ Postgres ケーション ケーション 日本PostgreSQLユーザ会 22
  • 23. レプリケーション拡張(3)  同期レプリケーションにremote_writeが追加  GUCパラメータ「synchronous_commit」で設定  従来の「on」設定より軽量・低信頼な同期レプリケー ション 設定値 意味 on 自機のディスク同期を待つ レプリケーション先のディスク同期を待つ 安全 remote_write 自機のディスク同期を待つ レプリケーション先の書き込み完了を待つ local 自機のディスク同期を待つ 高速 レプリケーション先の処理は待たない off 自機のディスク同期を待たない レプリケーション先の処理は待たない 日本PostgreSQLユーザ会 23
  • 24. レプリケーション拡張(4)  remote_writeの場合は  自機でのWAL書き込み+ディスク同期  レプリケーション先でのWAL書き込み ② WAL書き込み& ④ ディスク同期 WAL書き込み ① ③ COMMIT発行 WAL WAL転送 WAL マスターサーバ スタンバイサーバ クライアント Postgres Postgres ⑥ ⑤ COMMIT完了 WAL受領通知 日本PostgreSQLユーザ会 24
  • 25. レプリケーション拡張(5)  pg_receivexlogコマンドの追加  スタンバイサーバとして上流からストリーミングWAL を受け取ってファイルに保存するコマンド  WALの多重化を実現できる  WALが保存されたディレクトリはリカバリ時にアーカ イブWAL保存場所として使用可能  【注意】バックアップラベルファイルやヒストリファ イルは保存されない  pg_xlog_location_diff()関数の追加  レプリケーションがどの程度遅れているかを知るのに 便利 日本PostgreSQLユーザ会 25
  • 26. 範囲データ型(1)  下限値・上限値で範囲を表現するデータ型  境界値を含む/含まないを指定可能  '[1,3)'は「1以上、3未満」を表す  境界値にNULLを使うと無限区間に  基本的なデータ用の範囲型と演算子は組み込みで提供  CREATE TYPE AS RANGE文で新しい範囲型も定義可能 データ型 要素データ型 演算子 型 意味 int4range int A && B bool AとBが重なっている int8range bigint A @> B bool AがBを含む numrange numeric A -|- B bool AとBが隣接している tsrange timestamp A*B 範囲 AとBの共通範囲 tstzrange timestamptz A+B 範囲 AとBの合併範囲 daterange date A-B 範囲 AからBを除いた範囲 日本PostgreSQLユーザ会 26
  • 27. 範囲データ型(2)  8.4で導入された排他制約と組み合わせることで 、「重なり」がないかを検査する制約を定義可能 postgres=# d reservation Table "public.reservation" 同じ部屋番号で Column | Type | Modifiers 時間帯が重なる -------------+-----------+----------- 予約は不可という制約 id | integer | not null room_id | integer | not null during | tstzrange | not null *Note* reserver_id | integer | GiSTでint型を使うには memo | text | contrib/btree_gist Indexes: が必要 "reservation_pkey" PRIMARY KEY, btree (id) "reservation_during_excl" EXCLUDE USING gist (room_id WITH =, during WITH &&) 日本PostgreSQLユーザ会 27
  • 28. 範囲データ型(3)  8.4で導入された排他制約と組み合わせることで 、「重なり」がないかを検査する制約を定義可能 postgres=# INSERT INTO reservation (room_id, during, reserver) postgres-# VALUES postgres-# (2, '[2012-06-16 14:00,2012-06-16 14:45)'::tstzrange, 1); INSERT 0 1 postgres=# INSERT INTO reservation (room_id, during, reserver) postgres-# VALUES postgres-# (2, '[2012-06-16 14:30,2012-06-16 14:45)'::tstzrange, 1); ERROR: conflicting key value violates exclusion constraint "reserva tion_during_excl" DETAIL: Key (room, during)=(2, ["2012-06-16 14:30:00+09", "2012-06- 16 17:00:00+09")) conflicts with existing key (room, during)=(2, ["2 012-06-16 14:00:00+09","2012-06-16 14:45:00+09")). 日本PostgreSQLユーザ会 28
  • 29. JSONデータ型(1)  格納時の構文チェックのついたtext型  PostgreSQLの行や配列から変換可能  array_to_json()  row_to_json()  日本語の使用は次リリース(Beta3?)から  pl/v8*1ではJavaScriptで関数が書けるので親和 性が高い? *1 http://code.google.com/p/plv8js/wiki/PLV8 日本PostgreSQLユーザ会 29
  • 30. JSONデータ型(2)  使用例(テーブル定義) postgres=# d users Table "public.users" Column | Type | Modifiers --------+---------+----------- id | integer | not null name | text | not null data | json | Indexes: "users_pkey" PRIMARY KEY, btree (id) postgres=# SELECT * FROM users ORDER BY id; id | name | data ----+------+------------------------------------------------------------ 1 | foo | {"last_access":"2012-01-01 12:34:56","features":"[1,3,5]"} 2 | bar | {"last_access":"2011-11-25 23:42:41","features":"[2,3,6]"} (2 rows) 日本PostgreSQLユーザ会 30
  • 31. JSONデータ型(3)  使用例(array_to_json()関数) postgres=# SELECT array_to_json('{1,2,3}'::int[]); array_to_json --------------- [1,2,3] (1 row) postgres=# 日本PostgreSQLユーザ会 31
  • 32. JSONデータ型(4)  使用例(row_to_json()関数) postgres=# SELECT row_to_json(row(id, name)) postgres-# FROM foo WHERE id = 1; row_to_json -------------------------- {"f1":1,"f2":"name_1"} (1 row) postgres=# SELECT row_to_json(t) FROM postgres-# (SELECT id, name FROM t WHERE id = 1) t; row_to_json -------------------------- {"id":1,"name":"name_1"} (1 row) 日本PostgreSQLユーザ会 32
  • 33. JSONデータ型(5)  PGXNに外部モジュールとしてjson_accessors が出ました!  http://pgxn.org/dist/json_accessors/  どんな機能が?  json_array_to_<type>_array()  JSON配列からPostgreSQL型配列に変換  json_get_<type>()  JSONから属性名指定でスカラ値を取得  json_get_<type>_array()  JSONから属性名指定で配列値を取得 日本PostgreSQLユーザ会 33
  • 34. JSONデータ型(6)  使用例(json_get_text()関数) postgres=# select * from users order by id; -[ RECORD 1 ]---------------------------------------------------------- id | 1 name | Saito attributes | {"carrior":"softbank", "model":"iPhone-5","maker":"Apple"} -[ RECORD 2 ]---------------------------------------------------------- id | 2 name | Takahashi attributes | {"carrior":"au", "model":"A01","maker":"iida"} postgres=# SELECT name FROM users WHERE postgres-# json_get_text(attributes::text, 'maker') = 'Apple'; name ------- 引数がtext型なので、 Saito (1 row) キャストが必要です 日本PostgreSQLユーザ会 34
  • 35. カスタムプラン  EXECUTEのパラメータを考慮したプランを生成 postgres=# PREPARE s(int) AS SELECT * FROM t WHERE id < $1; PREPARE postgres=# EXPLAIN (COSTS off) EXECUTE s(1); QUERY PLAN ------------------------------ Index Scan using t_pkey on t Index Cond: (id < 1) (2 rows) postgres=# EXPLAIN (COSTS off) EXECUTE s(1000000); QUERY PLAN -------------------------- Seq Scan on t Filter: (id < 1000000) (2 rows) 日本PostgreSQLユーザ会 35
  • 36. Parameterized Paths(1)  Nested LoopのInner側で、直接結合しないテー ブルの値を使ったインデックススキャンが可能に なった  これまでは、直接結合する相手テーブルの値また は固定値のみが使用できた  インデックススキャンの適用可能性が広がり、複 雑な結合のあるクエリに性能向上のチャンスが生 まれた 日本PostgreSQLユーザ会 36
  • 37. Parameterized Paths(2)  9.1ではbはSeqScanだが… postgres=# EXPLAIN (COSTS false) SELECT 1 FROM c WHERE EXISTS ( postgres(# SELECT * FROM a JOIN b USING (b_id) postgres(# WHERE b.c_id = c.c_id) AND c.value = 1; QUERY PLAN ------------------------------------------- Nested Loop Semi Join Join Filter: (c.c_id = b.c_id) -> Index Scan using c_value_key on c Index Cond: (value = 1) -> Nested Loop -> Seq Scan on b -> Index Scan using a__b_id on a Index Cond: (b_id = b.b_id) (8 rows) 日本PostgreSQLユーザ会 37
  • 38. Parameterized Paths(3)  9.2ではcテーブルの値を使うIndexScanに! postgres=# EXPLAIN (COSTS false) SELECT 1 FROM c WHERE EXISTS ( postgres(# SELECT * FROM a JOIN b USING (b_id) postgres(# WHERE b.c_id = c.c_id) AND c.value = 1; QUERY PLAN ------------------------------------------------ Nested Loop Semi Join -> Index Scan using c_value_key on c Index Cond: (value = 1) -> Nested Loop -> Index Scan using b__c_id on b Index Cond: (c_id = c.c_id) -> Index Only Scan using a__b_id on a Index Cond: (b_id = b.b_id) (8 rows) 日本PostgreSQLユーザ会 38
  • 39. その他の拡張(1)  NOT VALID CHECK制約  CHECK制約作成時に既存のデータを検査しない  制約作成以降のデータ追加・更新は検査される  ALTER TABLE VALIDATE CONSTRAINT <制約名> で現在のデータを検査可能  NOT INHERIT CHECK制約  継承関係を辿って子テーブルに制約が伝搬しない  親テーブルにデータを入れたくない、といったケース で有効 日本PostgreSQLユーザ会 39
  • 40. その他の拡張(2)  インデックス  Unbalanced treeをサポートするSP-GiST(Space- Partitioned GiST)アクセスメソッドの追加  セキュリティ  セキュリティバリアビュー  VIEWのsecurity_barrier属性と関数のLEAKPROOF属性を組 み合わせることで、関数を通じてアクセス不可のカラム内容が 漏れることを防ぐ  CREATE や DROP もSE-Postgresで管理可能  ALTER TABLEでの .. ALTER TYPE の改善  全レコード書き替えは必要なときだけ 日本PostgreSQLユーザ会 40
  • 41. その他の拡張(3)  管理機能  contrib/pg_stat_statement  類似(定数値だけが異なるなど)SQLを集約してくれる  I/O情報も収集  実行時統計情報の拡充  pg_stat_bgwriter チェックポイント動作の情報  pg_stat_database デッドロックカウンタ  libpq  単一行モード(プロトコルレベルカーソル)のサポー ト 日本PostgreSQLユーザ会 41
  • 42. その他の拡張(4)  省電力  定期的にスリープから復帰する補助プロセスを減らす ことで、処理が無い時間帯においてサーバ省電力機能 が効果的に働く  11個/秒→0.4個/秒  各種プランナ、executor改善  高速ソート  定数式のキャッシュ利用  配列内の各要素まで考慮したコスト見積もり 日本PostgreSQLユーザ会 42
  • 43. その他の拡張(5)  psqlメタコマンド  ¥x auto  横幅の広い結果を自動的に縦表示に  ¥setenv  psqlコマンドの環境変数をセッション中に変更可能  ¥timing  エラーになった処理も時間表示 日本PostgreSQLユーザ会 43
  • 44. ご清聴ありがとうございました 日本PostgreSQLユーザ会 44
  • 45. 日本PostgreSQLユーザ会のご紹介  NPO法人として活動中  http://www.postgresql.jp/  活動目的  PostgreSQLの研究開発および普及促進  勉強会開催  日本語ドキュメント翻訳  メーリングリスト運営  PostgreSQLに関する情報の公開  Let's Postgres(http://lets.postgresql.jp/)  会員相互および外部との技術的・人間的交流 日本PostgreSQLユーザ会 45