-1
我有一個表名tbl_tmp_trans 它包含了每一個用戶的交易做過(和它現在是給6Mil!)保持每個用戶最後100成交,並刪除其餘
我們決定只保留最近100交易每個用戶在我們的數據庫中,以便我們能保持清潔分貝這裏 的是,我有
delete from tbl_tmp_trans
where trans_id in
(
select trans_id
from
(
select trans_id
from tbl_faucets_transactions
order by date
group by user_id
limit 100
) foo
)
我在做什麼錯想出了一個查詢?
因爲這樣做後,我的CPU達到100%,MySQL崩潰。
在此先感謝 PS:我們的db是MySQL和臺發動機是Innodb的
P.S2:我們有大約120K和transction表有6附近萬人次的紀錄
不知道您的系統中有多少用戶,但您可能想要接受此查詢併爲其添加另一個參數(userid),因此您並不試圖一次性運行整個數據庫。 – user2366842
@ user2366842我們有約120k用戶 – far2005
請顯示EXPLAIN結果。 –