100
9月10日リリース!! PostgreSQL9.3の最新事情 ~他RDBとの徹底比較!!~

Postgre sql9.3新機能 (OSC hiroshima 2013)

Embed Size (px)

Citation preview

Page 1: Postgre sql9.3新機能 (OSC hiroshima 2013)

9月10日リリース!!PostgreSQL9.3の最新事情

~他RDBとの徹底比較!!~

Page 2: Postgre sql9.3新機能 (OSC hiroshima 2013)

お詫び

他RDBの比較について盛り込めませんでした

Page 3: Postgre sql9.3新機能 (OSC hiroshima 2013)

お詫び

ごめんなさい、ごめんなさい、ごめんなさい

Page 4: Postgre sql9.3新機能 (OSC hiroshima 2013)

お詫び

最新事情はしっかりフォローします!

Page 5: Postgre sql9.3新機能 (OSC hiroshima 2013)

What is it?

みなさん

PostgreSQL

使ってますか?

Page 6: Postgre sql9.3新機能 (OSC hiroshima 2013)

What is it?

PostgreSQL9.3をガンガン使ってる人

Page 7: Postgre sql9.3新機能 (OSC hiroshima 2013)

What is it?

さくらインターネットさんの部屋に行ってOKです

Page 8: Postgre sql9.3新機能 (OSC hiroshima 2013)

What is it?

JPUG 2013 夏セミナーの資料を見た人

Postgre sql9.3新機能紹介

Page 9: Postgre sql9.3新機能 (OSC hiroshima 2013)

What is it?

Metasepi Projectさんに行っt(ry

Page 10: Postgre sql9.3新機能 (OSC hiroshima 2013)

What is it?

残っている精鋭の皆様へ

Page 11: Postgre sql9.3新機能 (OSC hiroshima 2013)

あじぇんだ

1 自己紹介

2 Postgres9.3の新機能

3 今からPostgreSQLを使う人へ

4 まとめ

Page 12: Postgre sql9.3新機能 (OSC hiroshima 2013)

あじぇんだ

1 自己紹介

2 Postgres9.3の新機能

3 今からPostgreSQLを使う人へ

4 まとめ

Page 13: Postgre sql9.3新機能 (OSC hiroshima 2013)

自己紹介

名前:曽根 壮大(そね たけとも)年齢:28歳(二十代だよ!)職業:WEB系プログラマー

技術的にはWEB系でLLとかRDBをゴリゴリしてます。

Page 14: Postgre sql9.3新機能 (OSC hiroshima 2013)

日本PostgreSQLユーザ会

Twitterは

       @soudai1025 と言うアカウントで活動してます。

最近はFuelPHPと艦これがメインです。

Page 15: Postgre sql9.3新機能 (OSC hiroshima 2013)

あじぇんだ

1 自己紹介

2 Postgres9.3の新機能

3 今からPostgreSQLを使う人へ

4 まとめ

Page 16: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

    知って得する新機能

・Updatable Views(更新可能ビュー)・Materialized View(実態のあるビュー)・JSON型の強化・Foreign data wrappers(外部データラッパー)

Page 17: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

    知って得する新機能

・Updatable Views(更新可能ビュー)・Materialized View(実態のあるビュー)・JSON型の強化・Foreign data wrappers(外部データラッパー)

Page 18: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

   Viewのメリッ卜

・表示列を制限できる・表示列を制限できる・複雑なクエリを簡潔にできる

Page 19: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

   Viewのメリッ卜

・表示列を制限できる・表示列を制限できる・複雑なクエリを簡潔にできる

Page 20: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

   Viewのメリッ卜

・表示列を制限できる・表示列を制限できる・複雑なクエリを簡潔にできる

Page 21: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

   Viewのメリッ卜

・表示列を制限できる・表示列を制限できる・複雑なクエリを簡潔にできる

Page 22: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

正規化した際のJOIN地獄

Page 23: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

複雑なサブクエリ複雑なサブクエリ

Page 24: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

これらをシンプルに!

Page 25: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

でもViewは直接更新できない

Page 26: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

今までの更新できるView

ルール("rule")or

トリガ("trigger")

を使って更新動作を定義する

Page 27: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

これが直接更新できるように!

Page 28: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

    知って得する新機能

・Updatable Views(更新可能ビュー)・Materialized View(実態のあるビュー)・JSON型の強化・Foreign data wrappers(外部データラッパー)

Page 29: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

Viewはクエリの結果なのでSQLに依存する

Page 30: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

Viewは遅い

Page 31: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

そこでマテリアライズド・ビュー

Page 32: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

Viewの結果をキャッシュする

Page 33: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

実体を返すので高速!

Page 34: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

ただしリフレッシュの管理が必要

Page 35: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

PostgreSQL9.3のマテビューの注意点

• 定期的に行われる自動リフレッシュ機能• 参照元の変更に連動した自動リフレッシュ機能• 更新差分だけを反映する高速リフレッシュ機能

Page 36: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

PostgreSQL9.3のマテビューの注意点

• 定期的に行われる自動リフレッシュ機能• 参照元の変更に連動した自動リフレッシュ機能• 更新差分だけを反映する高速リフレッシュ機能

Page 37: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

PostgreSQL9.3のマテビューの注意点

• 定期的に行われる自動リフレッシュ機能• 参照元の変更に連動した自動リフレッシュ機能• 更新差分だけを反映する高速リフレッシュ機能

Page 38: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

PostgreSQL9.3のマテビューの注意点

• 定期的に行われる自動リフレッシュ機能• 参照元の変更に連動した自動リフレッシュ機能• 更新差分だけを反映する高速リフレッシュ機能

Page 39: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

適切な使用は薬だが濫用すると毒になる

Page 40: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

Viewは設計と使い分けが大事

そもそも設計が良ければViewはいらないだろjk

Page 41: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

    知って得する新機能

・Updatable Views(更新可能ビュー)・Materialized View(実態のあるビュー)・JSON型の強化・Foreign data wrappers(外部データラッパー)

Page 42: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

JSON型は9.2からの機能

Page 43: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

それ、TEXT型で良くね?

Page 44: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

ジェイ・ウォーク(SQLアンチパターン)

Page 45: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

非正規化地獄

Page 46: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

WEBエンジニアが知るべき3つのSQLアンチパターン

Page 47: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

お客さん「1ゲーム基本一人だから」

Page 48: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

お客さん「1ゲーム基本一人だから」

Page 49: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

一ヶ月後…

Page 50: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

お客さん「やっぱキャラ追加するわ」

Page 51: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

Page 52: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

さぁどうする?

Page 53: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

Page 54: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

CSV(カンマ区切り)でよくね?

Page 55: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

CSV(カンマ区切り)でよくね?

Page 56: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

解決!!

Page 57: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

三年後・・・

Page 58: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

お客様「キャラのデータ入らないだけど」

Page 59: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

テストでは

Page 60: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

なぜか?

Page 61: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

カラムの大きさは有限

Page 62: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

IDの例

Page 63: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

11,12,13,14,15

Page 64: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

三年後・・・

Page 65: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

2000011,2000012,2000013

Page 66: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

限界が来た時に拡張が困難

Page 67: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

    その他の問題点

1 検索の低パフォーマンス2 更新時の整合性が担保できない3 集約クエリが作成出来ない

Page 68: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

    その他の問題点

1 検索の低パフォーマンス2 更新時の整合性が担保できない3 集約クエリが作成出来ない

Page 69: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

    その他の問題点

1 検索の低パフォーマンス2 更新時の整合性が担保できない3 集約クエリが作成出来ない

Page 70: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

    その他の問題点

1 検索の低パフォーマンス2 更新時の整合性が担保できない3 集約クエリが作成出来ない

Page 71: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

その他にもJSONやXMLで・・・

Page 72: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

本来は正規化すべき

Page 73: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

でもそれだとSQLが冗長

Page 74: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

そこで本来あるべき姿の型を用意する

Page 75: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

PostgreSQLの柔軟な型

・Array型・JSON型・XML型・IP型・位置情報型

Page 76: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

PostgreSQLは今後も

JSONに対する機能を強化

します

Page 77: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

    知って得する新機能

・Updatable Views(更新可能ビュー)・Materialized View(実態のあるビュー)・JSON型の強化・Foreign data wrappers(外部データラッパー)

Page 78: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

外部データラッパー?

Page 79: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

様々な外部データを

自分のテーブルとして扱うため

の枠組み

Page 80: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

PostgreSQL以外のデータを参照できる外部データラッパによる PostgreSQL の拡張

Page 81: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

PostgreSQL For PostgreSQL

Page 82: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

PostgreSQL For ODBC

Page 83: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

PostgreSQL For Oracle

Page 84: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

PostgreSQL For MySQL

Page 85: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

PostgreSQL For Twitter

Page 86: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

9.3からは書き込みもできる

※ただし一部のDBのみ

Page 87: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQL9.3の新機能

既存DB…一匹残らず…駆逐してやる!

Page 88: Postgre sql9.3新機能 (OSC hiroshima 2013)

あじぇんだ

1 自己紹介

2 Postgres9.3の新機能

3 今からPostgreSQLを使う人へ

4 まとめ

Page 89: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQLこれから使う人へ

最新版を使いましょう

Page 90: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQLこれから使う人へ

日本語ドキュメントが豊富

Page 91: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQLこれから使う人へ

コミュニティも盛ん!

Page 92: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQLこれから使う人へ

中国地方DB勉強会

http://local.aguuu.com/events/21550

https://groups.google.com/d/forum/dbstudychugoku

Page 93: Postgre sql9.3新機能 (OSC hiroshima 2013)

PostgreSQLこれから使う人へ

最新版を使いましょう

大事なことなので2回言いました

Page 94: Postgre sql9.3新機能 (OSC hiroshima 2013)

あじあぇんだ

1 自己紹介

2 Postgres9.3の新機能

3 今からPostgreSQLを使う人へ

4 まとめ

Page 95: Postgre sql9.3新機能 (OSC hiroshima 2013)

まとめ

高機能・高多様性を持つ

Page 96: Postgre sql9.3新機能 (OSC hiroshima 2013)

まとめ

今後もPostgreSQLは進化しつづけます

Page 97: Postgre sql9.3新機能 (OSC hiroshima 2013)

まとめ

積極的に情報を発信します

Page 98: Postgre sql9.3新機能 (OSC hiroshima 2013)

まとめ

  PostgreSQLカンファレンス2013

日時 2013年 11月 8日(講演 10:00 ~ 18:00、 懇親会 ~ 20:00)

場所 AP東京八重洲通り (東京都 中央区)講演 午前 1トラック、午後 3トラック にて14講演参加 300名 (一般参加定員 200名 予定)参加費 3,000円 (ローソンチケット L35899 )

主催 特定非営利活動法人 日本PostgreSQLユーザ会

Page 99: Postgre sql9.3新機能 (OSC hiroshima 2013)

まとめ

皆さんのご参加お待ちしています

Page 100: Postgre sql9.3新機能 (OSC hiroshima 2013)

まとめ

ご静聴ありがとうございました