設計やチューニングで注意したこと。
実装で起こりがちなこと
mysqlでの処理が遅い場合のあるある
1.スロークエリログの調査
2.nullが多すぎる
3.テーブルにindexをはれていない
4.クエリの数が多い
⇨join or EagarLoadを行う。
5.nullを極力使用しない
⇨is not null
6.パラメータチューニング
⇨MySQL診断ツール (MySQL Tuner) を使う
7.EXPLAINを使って、JOIN時にどちらのテーブルが駆動表でどちらのテーブルが内部表になっているか調べる
joinを正しく使用する
上記のチューニングとは別の内容にはなりますが・・・
※基本的にフォームが空のままデータを投入することはよろしくないと思っております。
実装時にプルダウンメニューで最低限入力保管をすることでバリデーションをかける等でカバーすることなども必要かもしれません。
もしくは設計段階できちんとした設計であるかなど。
チューニング自体も大切ですが、その前に渡された側が苦労しないようなスケジュールや実運用になったときに現実的に無理がないのか?
等も考慮する必要があるかと思います。
トランザクションに関する知識
トランザクション開始~終了までの一連の処理のこと。
トランザクションを終了するときは、一連の処理を確定させる(コミット)」
破棄する(ロールバック)」
SQLインジェクション
アプリケーションの脆弱性により本来の意図ではない不当な「SQL」文が作成されてしまい、「注入(injection)」されることによって、データベースのデータを不正に操作される攻撃