基本的な動き
findAllは基本的に何も設定しないと、
・カラムはワイルドカードで全部取得
・Sequelizeのオブジェクトが返却
される。
これがボトルネックになってパフォーマンスが落ちることがある。
カラムは必要な分だけ
あるテーブルで、カラムが82個あったテーブルをinner joinしてattributeを書かなかった。
すると、すべてのカラムを取得してきて時間がかかった。
なおかつ、このテーブルではwhere句だけを利用するために結合していただけなので、
attributes: []
こう書くことで、5秒くらい早くなった。
なるべくraw: true
基本的にSequelizeのオブジェクトが返却されるが、処理の順番的におそらく
1. レコードを取得
2. それぞれをオブジェクト化
っていうような流れになっている。
なので、2の処理をスキップできれば自ずと処理速度を改善できる。
なのでなるべく
raw: true
これを基本的には使うことをしていく。
ローデータは使いにくい場合があるので、全部これでやるというよりは、ケースで分ける。