0

2 つのテーブルがあり、1 つはユーザー情報 (ID、名前など) を保持し、もう 1 つはユーザー チケットとチケット ステータス (ticket_id、user_id、ticket_status など) を保持します。

たとえば、すべてのユーザーのリストを作成したい:( SELECT * FROM user_table )

そして、ユーザーごとに、たとえば次のようにチケットの数が必要です。 (SELECT t1.user_id, COUNT(*) FROM user_tickets t1 WHERE t1.ticket_status = 15 GROUP BY t1.ticket_status, t1.user_id )

探しているものを達成するためにこのクエリを実行できますが、5 秒かかります。50000 件のチケットに対してクエリを実行しますが、個別に実行される各クエリはほんの数秒しかかかりません。

SELECT t1.user_id, COUNT(*) 
FROM user_tickets t1 
LEFT JOIN user_table t2 ON t1.user_id = t2.id 
WHERE t2.group_id = 20 AND t1.status_id = 15 
GROUP BY t1.status_id, user_id

それぞれ別々に同じパフォーマンスを得るためにクエリを作成する方法はありますか?

4

1 に答える 1

0

インデックスの where 句で問題が修正されました。

于 2012-08-14T02:56:58.763 に答える