MySQL ユーザコンファレンスに行ってきました (1日目)
MySQL ユーザコンファレンスに行ってきました。自分が受講したセッションについてざっくりまとめます。
※あくまでも私の聞いた(つもりの)内容と私が書いたメモが元になっておりますので、実際のセッションや発言とは異なる可能性があります。
E-1マイグレーションの基礎
Oracle など、他の DB から MySQL に移行する際の概要に関するセッション。
マイグレーションチェックリスト
MySQL の PS 部隊が使っているチェックリストらしい。どのくらい移行が大変かの目安になるようだ。
Oracle -> MySQL の移行
- プロプライエタリからオープンへの移行というメリットもあるが、一番のメリットはコスト
- データ型はだいたいサポートされる
- ROWID, Interval ほげほげ, TIMESTAMP などはダメ
- LOB, 文字列, 数値は同等の機能を持ったデータ型に置き換える
- PL/SQL は手動での書き換えが必要
(オレ註: 結構大変そうだ...)
MS SQL Server -> MySQL の移行
- 基本データ型は大体使える
- でも型名の置き換えは必要
- T-SQL は手作業で書き換えが必要
- Migration Toolkit も使える
所感
やはりマイグレーションは大変そうだな、というのが第一印象。とくに Oracle を使っている場合はコストメリットは大きいけれども、移行自体にかなりコストがかかってしまうのではないか。Migration Toolkit はどこまで使えるか正直疑問。
E-2 Memcached and MySQL
- 立見が出てた。みんな興味があるみたい
出自
- LiveJournal というところで、30GB のキャッシュ/数TB の DB を実装使っているときに作ったらしい。
- 今では mixi など、色々な所で使われている
アーキテクチャ
- サーバはシンプル
- クライアントはサーバの情報を持つ
- フェイルオーバーもクライアントで行う
- 認証はできない
- LAN 内に入れること
- Consistent Hash というしくみを使っているらしい
- 詳細は Wikipedia
負荷
- CPU はあまり使わない
- ほぼ 0
最新リリース(1.2.5)について
- 複数のネットワークインターフェースのサポート
- ツール類の整備
- Solaris 対応
今後について
Q.A.
Q. サンプルで、DB のトリガーで memcached を叩いているが、良いのか?ドキュメントには NG だと書いてあったが。
A. 問題ない。実際に使っている企業もある。ただ、トリガーを使うとパフォーマンスが良くないから、私なら普通の select と insert を使う
所感
難解な内容だったが、かなり興味深いものだった。最近のメジャーな Web 系の企業では、良く使われているらしい。企業毎に色々な構成があってそれが面白かった。
E-3 MySQL Enterprise ツールのご紹介: Workbench、Query Analyzer、Proxy
Enterprise Edition を購入した際に利用できるツールについて
- Workbench
- Enterprise Edition
- Enterprise Monitor
- Query Analyzer
Workbench
- E-R図の作成などを行うツール
- 現時点では Windows 用
- 既存 DB のリバースエンジニアリング
- DB にアクセスして E-R図を作成する
- DB 間の比較機能
- 例) 本番環境 <=> 開発環境の比較
- 同期化
- 比較して差分のあった部分を同期する
- スキーマのみ。データはできない
- Free版と有償版($99)がある
- 利用できる機能に差がある
Enterprise Edition について
- DB のサポート
- 月次アップグレード
- HotFix etc
- モニタツール
- サポート
- Plutinum, Gold など
- 1年毎の契約
Enterprise Monitor
Query Analyzer
- クエリの統計を表示するツール
- Enterprise Monitor に最近統合された
- MySQL Proxy 上に構成されている
- Proxy は通信を仲介して、その中身を調べる
- 画面はプロファイラのような感じ
- 期間などを指定してモニタリング可能
所感
Query Analyzer は有用だと思うが、Enterprise Edition が必須であり、「お金をかけられないときのチューニングをどうするか?」については、ノウハウを溜めないと困るのではないか、と思った。
E-4 MySQL ライセンスの考え方
各製品とライセンス
FAQ
Q. ISV アプリを作成。ユーザに Communitiy Edition(GPL)をダウンロードして使ってもらう。これは問題ない?
A. NG。JDBC コネクタなど、アプリとの接続部分が GPL の用件を満たせない。商用ライセンスを購入する
Q. 社内で利用している場合。ソースを修正しても、コミュニティにフィードバックしなくても良い?
A. 問題ない。でもフィードバックしてほしい
Q. 開発を Community Server(GPL版)で行い、サポートが欲しいので Enterprise Edition のライセンスを購入した。しかしリスクがあるので、商用版のバイナリと現行を入れ換えるのはしたくない。この場合でもサポートを受けられるか?
A. 問題ない。(ただし、MySQL Cluster の場合はバイナリの入れ換えが必要。クラスタだと色々複雑なためらしい)
Q. Enterprise Edition のサブスクリプションを購入しないとソースがダウンロードできないが、これは GPL 上問題ない?
A. ない。バイナリを提供される顧客にはソースが提供されるから。
Q. ISV が Community Server(GPL版)でソースも含めて顧客に納入。ISV <-> 顧客のライセンスが非GPL。これは問題ない?
A. NG。配布にあたるから。商用ライセンスを購入する必要がある
Q. 3rd ベンダーが MySQL のプラグインを作成した場合のライセンスは?
A. ケースバイケース。(かなり難しそうだった)
Q. Enterprise Edition のソースを(権利を持っている)誰かがアップロードしても(また、そのソースを使っても)問題ない?
A. GPL 上は問題ない。ただし、Sun は責任を持てない(多分サポートが受けられなくなる)
所感
意外と面白かったセッション。自分としても、GPL について誤解していた部分もあった。