2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Sequelizeのパフォーマンス備忘

Last updated at Posted at 2020-05-05

基本的な動き

findAllは基本的に何も設定しないと、
・カラムはワイルドカードで全部取得
・Sequelizeのオブジェクトが返却
される。

これがボトルネックになってパフォーマンスが落ちることがある。

カラムは必要な分だけ

あるテーブルで、カラムが82個あったテーブルをinner joinしてattributeを書かなかった。
すると、すべてのカラムを取得してきて時間がかかった。
なおかつ、このテーブルではwhere句だけを利用するために結合していただけなので、

attributes: []

こう書くことで、5秒くらい早くなった。

なるべくraw: true

基本的にSequelizeのオブジェクトが返却されるが、処理の順番的におそらく

1. レコードを取得
2. それぞれをオブジェクト化

っていうような流れになっている。

なので、2の処理をスキップできれば自ずと処理速度を改善できる。

なのでなるべく

raw: true

これを基本的には使うことをしていく。
ローデータは使いにくい場合があるので、全部これでやるというよりは、ケースで分ける。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?