ユーザーがフィルターを定義し、フィルター条件に一致する学生の投稿を表示できる大学向けのアプリケーションを開発しています。
最初に、MYSQL はクエリを実行してuser_id
、フィルター パラメーター (学年、専攻など) に一致するすべての学生を検索します。次に、この結果を使用して、user_id
JOIN を介してそれらにリンクされた対応する投稿/イベントを照会して検索します。
質問:
同じuser_id
が個別の JOIN クエリ (イベント、投稿など) で数回使用されるため、データを使用する後続の JOIN クエリを高速化するために、結果を内部的に mysql に保存できるかどうか疑問に思っていました。
却下された解決策:
- MySQL クエリ キャッシュを使用する - クエリは毎回同じではないため、適用されません。最初の結合シーケンスは同じですが、その後、異なる結合パラメータが各クエリに適用されます。
- データを API (php) にプルし、 long を使用してクエリを送信します
where user_id = IN(#, #, #...)
。MYSQL に送り返すユーザー ID が 10,000 ある場合があります。クエリが非常に大きくなり、JOIN の節約が相殺されます。