利用条件 本資料は改変を含む再利用は全て自由です。 原本に対して文言の変更並びにシートの追加および削除 等の改変を加える場合には、原本の作成者の氏名(本資 料においては「株式会社びぎねっと 代表取締役兼CEO 宮 原 徹([email protected])」、改変者の氏名、改変個所の確 認が可能となるよう原本の入手経路(URL等)を改変後の 資料に明記するようにしてください LinuxWorld Expo/Tokyo 2001 GT-13 2001年6月1日 11:50~12:50 オープンソースデータベース 最適選択のポイント -PostgreSQLとMySQLを比較する株式会社びぎねっと 代表取締役社長兼CEO 宮原 徹([email protected]) http://Begi.net/ 講師経歴 • 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で考えよう(データの5W1H) • 誰が使うデータですか? • 何のためのデータですか? • どんなデータですか? • どれぐらいのデータですか? • どうやって使うデータですか? 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をサポート • http://www.borland.co.jp/kylix/ – 海外製ソフトウェアはMySQLサポートが多 い? • スクリプティング言語のサポート – 主要言語はサポートされている • ODBCドライバ・JDBCドライバ – unixODBC(http://www.unixodbc.org/) 両者のコンセプト比較 • 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でサポート • http://www.mysql.com/downloads/mysql-max-3.23.html – トリガー – ストアドプロシージャ – 副問い合わせ どっちを使う? • どっちが「優れている」という比較は無意味 – 「力」の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完全攻略 ガイド』 – 技術評論社刊 石井達夫著 – ISBN4-7741-0890-1 • 『MySQL&mSQL』 – オライリージャパン刊 Randy Jay Yarger, George Reese, Tim King 著 高見 禎成、寺田美穂子 訳 SoftAgency監訳 – ISBN4-87311-011-4 • 『MySQL徹底入門』 – 翔泳社刊 日本MySQLユーザー会著 とみたまさひろ・ SoftAgency監修 – ISBN4-88135-977-0 • 『SQL IN A NUTSHELL』(英語) – O’Reilly刊 Kevin Kline, Daniel Kline著 – ISBN 1-56592-744-3 参考情報 • 日本PosgreSQLユーザ会 – http://www.jp.postgresql.org/ • 日本MySQLユーザー会 – http://www.mysql.gr.jp/ • SRA – http://www.sra.co.jp/ • ソフトエージェンシー – http://www.softagency.co.jp/ • フリーDBMSのリスト – http://neal.nikkeibp.co.jp/FreeDBMS/dblist.html
© Copyright 2024 ExpyDoc