MySQL-mysql如何判断数据的活跃性并清理不活跃的数据
比如一个社区,当某个用户很久没来社区以后,他所产生的数据变得不再活跃甚至就此不再有任何查询和更新,而数据库的这些记录不断堆积,必然降低数据处理能力。
1,在MySQL下通过什么方式来把让这些不活跃的数据清理出去,备份在old表,以减轻数据库的查询压力?
2, 如何判断数据记录的活跃性?
3,用什么方式重新激活这些数据?
不活跃性分为 查询活跃性 和 更新活跃性 。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个完全取决于你的数据库设计,查询活跃取决于用户的登陆时间,更新活跃那就取决于用户活动(添加图片、发帖、投票、写博文等)的更新时间,比如你创建一个活动类型表:
id | user_id | activity_type_id | p_id | t_id | v_id | b_id | updatetime
分别是增长id、用户ID、类型(picture、post、vote、blog)、图片id、帖子id、投票id、博客id、更新时间
用户主表里添加个lasttime(最后登录时间)
根据上面这些就可以判断一个用户的是否活跃(根据你自己定的标准)
至于清除不活跃的用户,你得写个处理程序实时来根据上面得的不活跃用户移到旧表中,而激活呢,根据用户某一动作的完成来判断这个用户是否是不活跃的,是就从旧表中移到主表里。
感觉你这个完全是业务逻辑,和程序本身没有太大的关系的样子,其实活跃状态可以从多个方面进行判断的:
1、比如你可以从用户登录表中提取信息,进行判断用户的活跃程度,比如用户登录的频率以及平均登录间隔,以及最后一次登录的时间。比如对于那些两个月都没有活动的用户完全可以理解这种用户基本上是不会回来了,可以将其的内容移动到其他表中,或者进行分区到下方不常用的位置。
2、综合比如用户的行为和活动,比如用户发的帖子数量,以及发起的活动,签名等,不用全部计算,挑几个重点就好了。
话说既然你是自己开发的系统,能够任意的更改程序和数据库结构的话,这样做起来就挺方便的。