SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート

【Sun Tech Days 2008セッションレポート】「MySQL: Database for Web 2.0」

データ型はなるべく小さくコンパクトに

 データベースを設計する際には、データ型を適切に選択することが重要だという。

 数値型は、Oracleは1つだけだがMySQLには9つもあり、使い分けが必要。例えば、AUTO_INCREMENTするフィールドで常にBIGINTが必要なわけではない。負の数を必要としないならUNSIGNEDが利用できるので、INT UNSIGNEDとしても43億行まで対応できる。また、お金にかかわるデータは、DECIMALを使う。

 文字列には、原則としてCHAR(n)でなくVARCHAR(n)を使う。ただし、VARCHARはメモリを削減できない。UTF-8のVARCHAR(255)列に1バイトのデータを格納しても、メモリ上は765バイトを消費するという。

 また、ENUM型を適宜使うこと、BLOBよりファイルシステムを利用するする方が効率的なケースもあること、IPv4アドレスは、文字列としてVARCHAR(12)に保持するより、INET_ATON/INET_NTOQで数値換算すればUNSIGNED INTで(4バイト)収納できること、途中で気づいてALTER TABLEすると待たされるので最初からきちんと設計しておいた方がよいこと、などが紹介された。

オプティマイズ

 最後に、最適化にはEXPLAINを使って、MySQLのオプティマイザによる実行計画を表示することが重要だと語った。利用可能なインデックスや利用されるインデックスを確認できるほか、注意事項が出力される。

 また、データのシーク(特定の位置から読み出す)とスキャン(連続的に読み出す)がどんなときに起きるかに注意する。例えば、インデックスになる列に関数が使用されると、フルスキャンになることがあるという。

 また、CURRENT_DATE()のような戻り値が一定ではない関数を使うとクエリキャッシュが使われないので、このような値はアプリケーション型で代入して、SQL文では定数として扱われるようにすること。クエリに必要がない列はSELECTしないこと(例えば、必要ないのにTEXT型をSELECTすると大きすぎてクエリキャッシュやデータ転送量の面でマイナス)などが紹介された。

 こういった技術的な情報は、MySQL ForgeのWikiを参照するとよいとのことだ。

MySQL 5.1が正式リリース

 梶山氏の発表では、11月30日に正式(Generally Available)リリースされたMySQL 5.1についても語られた。5.1ではストレージエンジンを選択可能なだけでなく、サーバ稼働中にエンジンをプラグインとして追加/削除が可能だという。

 その他にも次のような特徴がある。

 また、「地味だが便利なツール」として、簡易ベンチマークツール「mysqlslap」が紹介された。次のような機能があるという。

  • テスト用のクエリやデータの自動生成
  • 複数のストレージエンジンの比較にも便利

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
イベントレポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3374 2008/12/10 12:55

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー