PHP
MySQL
laravel5
laravel5.4

パフォーマンスの良いアプリを開発するために心がけていること

前提

  • Laravelを使ったアプリ開発において、パフォーマンス改善のために気をつけていることの備忘録です
  • ゲームアプリ開発を前提にしています

心がけていること

その1

  • select文(->getメソッド)は不必要なフィールドまで呼び出さない
  • 処理で必要なgetメソッドのみを引数に指定するようにする

その2

  • 配列変数を指定する場合には ' で囲む(例:hoge['apple'])

その3

  • 頻繁にIN句するフィールドにはINDEXを貼る

その4

  • MySQLは1テーブルにつき1つのINDEXしか使用されない
  • 同時に複数のフィールドのINDEXを使う場合は複合INDEXを作成する
  • 複合INDEXは順番が大事なので使用する場合は注意が必要

その5

  • JOINはしない
  • テーブルの結合は2つのSELECTを飛ばし、foreachで結合する
// 連想配列への要素の追加
foreach ($hogeList as $hoge) {
    $hoge['追加するキー'] = 追加したい内容
}

その6

  • array_pushは使わない
  • $array[] = hogehoge; 形式の配列追加を行う

その7

  • 比較演算は厳密な比較を行う(=== または !== など)

その8

  • for()やforeach()などの外で出来ることは外で先に行う

その9

  • コレクションメソッドはforeachで処理するよりも速度が遅い
  • 速度が求められる部分や対象となる配列が多い場合はforeachで処理した方が良い
  • コレクションは可読性の面でとても優れているのでケースバイケースで扱う

参考