0

以下は、特定のユーザーの平均投票ポイントを計算し、それをユーザー テーブルに入れるクエリです。

update usersinfo as users 
       set users.averageVote = 
       (select AVG(vote.votePoint) from votelist as vote 
               where users.userNum = vote.targetUserNum);

「usersinfo」テーブルには 10,000 行、「votelist」テーブルには約 15,000 行あります。各ユーザーは 1 ~ 3 の投票レコードを持っています。

'votelist' テーブルの 'votePoint' は tinyint 値 (0~100) です。

'userNum' と 'targetUserNum' は中間の int プライマリ キーです。

「usersinfo」テーブルの「averageVote」は 10 進数 (5,2) です。

上記のクエリの実行時間は約 83 秒です。このクエリのパフォーマンスを最適化する方法はありますか?

4

1 に答える 1

1
Create Index 
    I_TargetUserNum 
On votelist(
    targetusernum,
    votepoint
);
于 2013-10-20T12:46:20.903 に答える