LoginSignup
0
0

More than 3 years have passed since last update.

SQLのクエリが重すぎた話

Posted at

概要

大量のレコードを扱うテーブルを表示するときに、クエリの発行の仕方が悪くてクエリの量がとんでもなく多くなってしまったので、そのときの解決方法を書いておきます。

本題

d4b2e4b5c79fe9b78a580e4fe6822a65.png
上記のようなテーブルをデータベースから取得して表示する場合、
A~Eそれぞれに02などの値が紐づくのであれば、
行ごとに値をとってこようとするとA~E,F,G,...と増えていくにつれて発行するクエリはそれだけ増えていきます。
そこで、group_byなどを使い、aa,bb,cc,dd,ee,ffの列ごとにクエリを発行するようにすれば、
レコード自体が増えても影響は少なくできます。

まとめ

こういった問題はn+1問題とも呼ばれているようですが、自分は知りませんでした。
駆け出しのうちはそもそも知らないことが多いので、実装方法はときどき人に聞いた方がよさそうです。

0
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
0
0