私は次のシナリオを持っている:mysql大きなデータセットまたはループのIN?
Table 1:
articles
id article_text category author_id
1 "hello world" 4 1
2 "hi" 5 2
3 "wasup" 4 3
Table 2
authors
id name friends_with
1 "Joe" "Bob"
2 "Sue" "Joe"
3 "Fred" "Bob"
私は、特定のカテゴリの「ボブ」と友達である著者の総数を知りたいです。
たとえば、カテゴリ4の場合、「Bob」の友達である著者がいくつあるのですか。
authorsテーブルがいくつかのケースでは、私は「ボブ」と友達である万人作家を持って、非常に大きいです
だから私は試してみました:ボブと友達である著者の
のGetリストを、そしてそれらをループして、与えられたカテゴリのそれらのそれぞれのためのカウントを取得し、私のコードでそれらをまとめてください。
このアプローチの問題は、非常に高速であるにもかかわらず、100万のクエリを生成できるということです。より良い方法があるはずです。
私はbobの友達である著者のリストを取得しようと考えていましたが、そのリストでIN句を作成しましたが、クエリセットで許可されているメモリの量を吹き飛ばす恐れがあります。
よくある問題です。何か案は?記事は、著者ごとに複数の行を打つ可能性があるとして
おかげ
私は実際のサンプルがわかりませんが、関係の友情は多くの人にあり、あなたはそのデータを別々のテーブルに保管するべきだと思います。 – adopilot