200 likes | 336 Views
利用条件 本資料は改変を含む再利用は全て自由です。 原本に対して文言の変更並びにシートの追加および削除等の改変を加える場合には、原本の作成者の氏名(本資料においては「株式会社びぎねっと 代表取締役兼 CEO 宮原 徹 (tmiyahar@Begi.net) 」、改変者の氏名、改変個所の確認が可能となるよう原本の入手経路( URL 等)を改変後の資料に明記するようにしてください. LinuxWorld Expo/Tokyo 2001 GT-13 2001 年 6 月 1 日 11:50 ~ 12:50.
E N D
利用条件 本資料は改変を含む再利用は全て自由です。 原本に対して文言の変更並びにシートの追加および削除等の改変を加える場合には、原本の作成者の氏名(本資料においては「株式会社びぎねっと 代表取締役兼CEO 宮原 徹(tmiyahar@Begi.net)」、改変者の氏名、改変個所の確認が可能となるよう原本の入手経路(URL等)を改変後の資料に明記するようにしてください
LinuxWorld Expo/Tokyo 2001 GT-13 2001年6月1日 11:50~12:50 オープンソースデータベース最適選択のポイント-PostgreSQLとMySQLを比較する- 株式会社びぎねっと 代表取締役社長兼CEO 宮原 徹(tmiyahar@Begi.net) 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