chore(sql): 校准被压测数据污染的互动计数
剧集点赞数与剧收藏数改回按实际未删除互动行重算,可重复执行。
This commit is contained in:
1 parent
6bbde0b100
commit
5ff4626b33
1 file changed
+30
@@ -0,0 +1,30 @@
|
||||
-- Author: fruit.com.cn
|
||||
-- K110 校准互动计数字段。
|
||||
-- 历史压测数据把部分计数直接改成 100000 量级,与真实行数不符;
|
||||
-- 这里按实际有效互动行重算剧集点赞数与剧收藏数,可重复执行。
|
||||
BEGIN;
|
||||
|
||||
-- 剧集点赞数 = 该集未删除的 EPISODE 点赞行数
|
||||
UPDATE drama_episode e
|
||||
SET like_count = sub.cnt
|
||||
FROM (
|
||||
SELECT e2.id, COUNT(l.id) AS cnt
|
||||
FROM drama_episode e2
|
||||
LEFT JOIN content_like l
|
||||
ON l.target_type = 'EPISODE' AND l.target_id = e2.id AND l.deleted = 0
|
||||
GROUP BY e2.id
|
||||
) sub
|
||||
WHERE e.id = sub.id AND e.like_count IS DISTINCT FROM sub.cnt;
|
||||
|
||||
-- 剧收藏数 = 该剧未删除的收藏行数
|
||||
UPDATE drama d
|
||||
SET favorite_count = sub.cnt
|
||||
FROM (
|
||||
SELECT d2.id, COUNT(f.id) AS cnt
|
||||
FROM drama d2
|
||||
LEFT JOIN user_favorite f ON f.drama_id = d2.id AND f.deleted = 0
|
||||
GROUP BY d2.id
|
||||
) sub
|
||||
WHERE d.id = sub.id AND d.favorite_count IS DISTINCT FROM sub.cnt;
|
||||
|
||||
COMMIT;
|
||||
Reference in new issue
Block a user