Engineering Evidence / Backend Portfolio
后端实践2026-06-035 min read

为什么视频进度上报不应该直接写 MySQL

从视频学习场景出发,记录我对高频写入、缓存削峰、完播同步和幂等状态流转的理解。

1 Notes

在视频学习场景里,播放进度会随着 timeupdate 高频触发。如果每一次进度变化都直接写 MySQL,数据库会承担大量重复写入,真实业务价值却很低。

我的处理思路是把播放中的临时状态放到 Redis,按用户、课程、视频维度维护最新进度和写入次数。只有在完播、退出学习或延迟任务触发时,才把最终状态同步到 MySQL。

这个方案的关键不是简单加缓存,而是把数据分为过程态和结果态。过程态追求低延迟和可覆盖这里可以作为架构取舍的核心旁注:缓存负责高频过程,数据库负责最终事实。2026-06-03 13:35,结果态追求准确和可追溯。面试里讲这段时,我会重点解释幂等 key、完播优先级和异常恢复。