データベース設計 
2008/7/29 火曜日 20:16:03
チョコボールakaモリモリ~です。
7月から携帯コンテンツの開発に加わることになりました。
今までは管理画面系が多かったので携帯に関する知識はほとんど無かったのですが、携帯3キャリアに対応していくためのコーディングやセッションの引き回しについてなど、少しずつ覚えてきました。
今回はデータベースについて思うこと…を。
今まではDB操作はずっとphpMyAdminに頼ってたんですが、コンソールを使うようにと指示が出て、最近はひたすらSSHでカタカタとやってます。
慣れてくるとサクサク処理出来て快適ですね。
早いというか、それが通常の処理の早さってことなんでしょうけど。。
個人的に作ってるサイトはSSHが使えないレンタルサーバーなのでDB操作はphpMyAdminを通してやるしかないのが残念です。
自分は業務でデータベース設計をすることはありませんが、実際に使う時のことを考えて、できるだけ複雑なJOINやサブクエリをさせないようにうまいこと設計しないと、のちのちレコードが増えてきた時にパフォーマンスにモロに影響が出る、と実感しました。
あまりにも関連テーブルを分けすぎるとSQL組む時、かなり複雑になります…。
データが1000レコードでSELECT文、オフセット10でデータひっぱってくるのに10秒以上かかる。
こんなシステムに遭遇。。
発行されたSQL文を見てみると、JOIN、サブクエリが複雑に絡み合って恐ろしいことになってました。
一つの複雑なSQL文で全てやろうとするよりもSQLを何回かに分けてプログラム側でごにょごにょやると取り敢えずパフォーマンスは改善しそうな予感です。
今後データベース設計する機会があったら活かせるとよいなーと思います。