サービス開発の最中に、ログを見ると一部データの取得に物凄く時間を費やしています。
その原因を見ると、おそらくJSON_CONTAINSを利用している部分が原因だと思いました。
JSON_CONTAINSを利用すること自体が遅くする原因なのか、
何か他の理由がありましたら、ご教授頂ければ幸いです。
下記は例題になります。
threadsテーブルのJSON型のlabel_idsカラムに複数のlabelのidを配列で保存していて、
特定のlabelのidをlabel_idsの中に含めているthreadを取得する為のコードになります。
count = Threads.where('JSON_CONTAINS(label_ids, '"?"')', "#{label.id}").count
あなたの回答
tips
プレビュー