0

30 万行のテーブルで DESC によって INT 行を注文し、@rownum:=@rownum+1 を選択して同じ行の RANK フィールドを更新しています。

完全に機能しますが、時間がかかります。より長い時間は受け入れることができますが、他のジョブを作成するために CPU に空き容量を与えるためにスリープ状態にすることはできますか?

while(1>0) ループに sleep(0.25 秒) を入れるような...

更新: SET @rownum=0; update user u, (SELECT @rownum:=@rownum+1 as rank, id FROM user u order by score DESC) as bb SET u.rank=bb.rank WHERE u.id=bb.id

4

2 に答える 2