利用条件 本資料は改変を含む再利用は全て自由です。 原本に対して文言の変更並びにシートの追加および削 除等の改変を加える場合には、原本の作成者の氏名( 本資料においては「株式会社びぎねっと 代表取締役兼 CEO 宮原 徹 」、改変者の氏名、改 変個所の確認が可能となるよう原本の入手経路( URL 等)を改変後の資料に明記するようにしてください
オープンソースデータベース 最適選択のポイント -PostgreSQL と MySQL を比較する - 株式会社びぎねっと 代表取締役社長兼 CEO 宮原 徹 LinuxWorld Expo/Tokyo 2001 GT 年 6 月 1 日 11:50 ~ 12:50
講師経歴 1994 年 日本オラクル株式会社入社。 PC サー バー製品のマーケティングに従事 1996 年 同社 Web マスターとして Web サイト立 ち上げ。 DB 連携会員管理システム「 OFC 」を 構築 その後 EC パッケージ開発に従事後、紆余曲折 を経て現在に至る 著書に『 Oracle8 for Linux インストールキッ ト』、監訳書に『 Oracle7 SQL 入門』『 Oracle データベース設計』(アスキー出版) 『 Oracle システム設計』『オラクル PL/SQL プ ログラミング Oracle8 対応版』(オライ リー)、その他雑誌記事など多数
本日のアジェンダ 何を基準に DB を選べばいいの? どうやって DB を使うの? DB のパフォーマンスを考える PostgreSQL と MySQL を比較してみる 各ユーザー会・ PR コーナー 質疑応答
こんな DB の選び方は間違ってい る 有名だから みんなが使っているから 最新の機能が満載されているから TPC ベンチマークで性能がいいから 高いから/安いから/無料だから データベースは道具である
こんな DB の選び方をしよう 有名だから みんなが使っているから 必要な機能が実装されているから 自分で測定してみたベンチマークで性 能が出ている 適正価格である サポートが提供されている オープンソースである
どうやってデータベースを使 う? 目的指向・ DOA で考えよう ( データの5 W1H) 誰が使うデータですか? 何のためのデータですか? どんなデータですか? どれぐらいのデータですか? どうやって使うデータですか? etc…etc… *DOA:Data Oriented Approach これらの要素が絡み合ってデータの性質が決定す る。そしてその性質に合わせてデータベースを選 ぶ。
例) Web による会員システム ユーザーインターフェースは全て Web 会員情報を中心に関連データが存在 –ER 図はそれほど複雑ではない) データの検索 / 入力 / 更新の頻度見積もり – 検索は常に最も多い(と仮定) – 入力が多いのであれば、検索も多い(は ず?) – 更新が多いのであれば、入力は少ない (?) – 削除はとりあえず問題にしない
Web システムを分析する Web アプリケーションにおける処理頻度は概 ね以下の通り 検索≧入力>更新 トランザクションが必要となる一貫性を維持 した更新処理が必要かどうかはアプリ次第 –Web アプリはそもそも仕組みとしてトランザク ション処理が難しく不向き – トランザクションの同時並行処理はリソースを消 費し、パフォーマンスを低下させるおそれがある
Web システムに適した DB と は? リソース(特にメモリ)を浪費しない 回線速度相応のパフォーマンス – どんなに高速な DB でも遅い回線ではオー バースペック 適切な開発環境・ミドルウェアが選択 肢にある – 商用ソフトウェアからのサポート – スクリプト言語系( Perl,Ruby,PHP) –ODBC,JDBC など
パフォーマンスについて パフォーマンスはユーザーの責任 高パフォーマンスへの近道は正しい知識と経 験 – きちんとしたスキーマ設計 正規化と非正規化 – 正しいインデックス インデックスは張ればいいというものではない – 適切な SQL 条件文の書き方が速度を大きく左右することもある – 最適な物理設計 ディスク、速いですか?メモリ、積んでますか? – ボトルネックの割り出し 遅いのは DB のせいとは限らない
開発環境・ミドルウェアにつ いて 商用ソフトウェアによるサポート –Borland Kylix は MySQL をサポート – 海外製ソフトウェアは MySQL サポートが 多い? スクリプティング言語のサポート – 主要言語はサポートされている ODBC ドライバ・ JDBC ドライバ –unixODBC(
両者のコンセプト比較 PostgreSQL – データベースの研究から生まれる – 標準 SQL のサポート – 必要な機能は実装していく MySQL –Postgres(PostgreSQL の前身 ) を SQL 対応させ る miniSQL の流れを汲む – 最低限の実装 – 高速な処理
SQL コマンド比較 PostgreSQL でサポートされていて、 MySQL で サポートされていない SQL コマンド一覧 スキーマ関係 –CREATE/DROP TRIGER –CREATE/DROP VIEW –TRUNCATE TABLE データ操作系 –DECLARE/CLOSE CURSOR,OPEN,FETCH –SET/COMMIT TRANSACTION –CAST
機能比較 PostgreSQL でサポートされていて、 MySQL でサポートされていない機能 – トランザクション MySQL-Max でサポート – トリガー – ストアドプロシージャ – 副問い合わせ
どっちを使う? どっちが「優れている」という比較は 無意味 – 「力」の MySQL – 「技」の PostgreSQL フリーなのだからとりあえず触れてみ る サポートで選ぶ? –SRA 、ソフトエージェンシーがサポート サービスを提供 最終的には道具としての好み
日本 PostgreSQL ユーザ会 設立: 1999 年 7 月 23 日 会員数: 942 名 (2000/5/15 現在 ) –pgsql-jp ML は約 4700 名 活動内容 – セミナーなどのイベント –CD-ROM 作成 – 翻訳 PostgreSQL/Introduction and Concepts(Bruce Momjian) PostgreSQL 付属ドキュメント – 支部設立(札幌,広島,関西 … ) – 飲み会 会費無料, 24H/365D Web page で入会受付中 JPUG ブースで CD-ROM をもらおう !
日本 MySQL ユーザー会 設立: 2000 年 3 月 –ML のログをおく場所のドメイン名の獲得のため (^^; 会員:約 350 名 (2001/5/13 時点 ) –ML 参加者数は約 1300 名 活動内容 –ML での情報交換が主 – 「 MySQL 徹底入門」 ( 翔泳社 ) 執筆 (2001 年 1 月 ) – 雑誌原稿執筆 来るもの拒まず、去るもの追わず。お気軽にどう ぞ (^^)
参考資料 『改訂版 PC UNIX ユーザのための PostgreSQL 完全攻 略ガイド』 – 技術評論社刊 石井達夫著 –ISBN 『 MySQL&mSQL 』 – オライリージャパン刊 Randy Jay Yarger, George Reese, Tim King 著 高見 禎成、寺田美穂子 訳 SoftAgency 監訳 –ISBN 『 MySQL 徹底入門』 – 翔泳社刊 日本 MySQL ユーザー会著 とみたまさひろ・ SoftAgency 監修 –ISBN 『 SQL IN A NUTSHELL 』(英語) –O’Reilly 刊 Kevin Kline, Daniel Kline 著 –ISBN
参考情報 日本 PosgreSQL ユーザ会 – 日本 MySQL ユーザー会 – SRA – ソフトエージェンシー – フリー DBMS のリスト –