【レポート】

PHPデベロッパがおかしがちな10のMySQL間違い

 

SitePoint: New Articles, Fresh Thinking for Web Developers and Designers

PHPを使ってWebサイトやWebアプリケーションを構築する場合はデータベースも併用することが多い。そしてその場合に採用されることが多いデータベースのひとつにMySQLがある。PHPはすぐに利用できるようになるプログラミング言語といわれているが、MySQLやSQLはそうではない。堅牢で信頼できるデータベースを設計し、それを扱うSQLクエリを作成するにはそれなりの学習時間と経験が必要だ。

こうした話題がSitePointにおいてTop 10 MySQL Mistakes Made By PHP Developersとして掲載されている。PHPデベロッパが犯しがちな10のMySQLミステイクという内容になっている。どういった間違いをしてしまうか簡単にまとまっており参考になる。紹介されている内容は次のとおり。

  1. InnoDBではなくMyISAMを使ってしまう。MyISAMはデフォルトで使われるが、シンプルなデータベースや実験的な目的で以外では使わないほうがよい。MyISAMは外部キー制限やトランザクションといった機能をサポートしないため、データの完全性確保という点で問題がある。レコードの挿入や更新時にテーブルをロックするため性能にも懸念があり、InnoDBを使った方がいい。
  2. PHPの提供しているMySQL関数を使ってしまう。MySQL Improved Extension (mysqli)を使うようにする。mysqliの方がSQLインジェクション攻撃への対処やパフォーマンス確保が実現しやすく、マルチステートメントやトランザクションもサポートしている。
  3. ユーザの入力するデータをチェックしないでそのまま使ってしまう。ユーザの入力は信用しないこと。また、ブラウザ側で動作するJavaScriptを使ったチェックに頼るのではなく、サーバサイドのPHPでちゃんと検証すること。
  4. UTF-8を使わないでプログラムを組んでしまう。米国、英国、オーストラリアなどではやりがち。UTF-8を使うようにする。
  5. SQLを使うよりもPHPで処理をしてしまう。たしかにSQLに不慣れな状態ではPHPで機能を実装してしまうのはわかるが、機能が提供されている場合にはSQLの機能を使ったほうが高速に処理できる。
  6. SQLクエリを最適化しないで使ってしまう。多くのWebアプリやWebサイトがたったひとつの悪いSQLクエリによってパフォーマンス上の問題を抱えている。SQLクエリを最適化して利用する。
  7. 間違ったデータ型を使っている。適切なデータ型を使えば高速に、そして簡単に処理できるところを、誤ったデータ型を使うことで複雑化し、そして遅いシステムなってしまっている。
  8. SELECTクエリで*を使ってしまう。必要なデータのみを取得するように変更する。
  9. インデックスを使いすぎている。インデックスを使ったほうが検索は高速になるが、すべてのカラムに適用するようなことをすれば挿入や更新処理でパフォーマンス劣化を引き起こす。必要なところに対してのみインデックスを使うようにする。
  10. バックアップを忘れる。データベースは稀にだが壊れることがある。バックアップは必須。

Top 10 MySQL Mistakes Made By PHP Developersではほかのデータベース候補としてPostgreSQLやFirebirdなどにも言及している。商用データベースの無償版としてはMS SQL Server ExpressやOracle Database 10g Expressなども紹介。また、組み込み向けなどとしてMySQLにも言及している。

Top 10 MySQL Mistakes Made By PHP DevelopersではInnoDBの使用を推奨しているが、もちろんMyISAMの方が適切に利用できるシーンもある。ただし、InnoDBの機能強化が進んだ結果、多くのシーンでInnoDBの方が適切なストレージエンジンとして活用できるようになっていると言われている。



転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

Windows 10ミニTips 第121回 OneDriveの同期を一時停止する
[00:00 9/30] パソコン
ブラッド・ピット、映画試写会への参加断念「今、家庭の問題に焦点を…」
[23:49 9/29] エンタメ
東尾理子、夫・石田純一の出馬騒動への不満爆発!?「話が下手なのに」
[23:37 9/29] エンタメ
きくち正太がおとなの週末に登場、イブニングで島耕作の上司・中沢喜一の読切も
[23:17 9/29] ホビー
劇場版『マジェスティックプリンス』、サブタイトル決定! 新ビジュアル公開
[23:00 9/29] ホビー

求人情報