留存率,数据表分表问题
时间:2013-05-22
来源:互联网
本帖最后由 minoc 于 2013-5-22 15:00 编辑
现在有一个1千多万的数据表,是记录的用户的产品使用记录,
有如下几用查询留存要用到的字段,
id userid 软件使用时间戳timestamp 应用包名packname 版本号version 发布渠道channel 用户注册时间register 数据入库时间datetime
数据600M多,索引600M多,一共1400万条左右,
此表涉及到留存率这个功能,比如3月注册的用户在4月的留存情况, 还有可能要看3月注册的用户在5月的留存情况,更具体的是,3月在4月中每一天的留存率,
如:3月在4月的留存率,即是(register=3月内 and timestamp=4月内),这个条件内的用户数占3月用户注册总数的比例
产品越来用户越多,数据增加越来越大,如果要分表,当前这个表就要保留最少3 4 5月这3个月的数据,查询了一下,这3个月占了900W多, 如果现在查询一次留存率,把3月在4月的留存缓存了,只需要保留4 5月的数据.也有700W多,数据表还是挺大的,但这不是办法,以后数据更多的时候,一个月有可能就会出现1千万,所以这样分表只是把表缩小了体积,没有多大意义
其实说这么多,我想知道的是,留存率,怎么统计比较好,可以占用空间少,效率又高,注意里面有版本和包名的字段,用处是查询一个包名或者版本3月在4月的留存情况.
现在有一个1千多万的数据表,是记录的用户的产品使用记录,
有如下几用查询留存要用到的字段,
id userid 软件使用时间戳timestamp 应用包名packname 版本号version 发布渠道channel 用户注册时间register 数据入库时间datetime
数据600M多,索引600M多,一共1400万条左右,
此表涉及到留存率这个功能,比如3月注册的用户在4月的留存情况, 还有可能要看3月注册的用户在5月的留存情况,更具体的是,3月在4月中每一天的留存率,
如:3月在4月的留存率,即是(register=3月内 and timestamp=4月内),这个条件内的用户数占3月用户注册总数的比例
产品越来用户越多,数据增加越来越大,如果要分表,当前这个表就要保留最少3 4 5月这3个月的数据,查询了一下,这3个月占了900W多, 如果现在查询一次留存率,把3月在4月的留存缓存了,只需要保留4 5月的数据.也有700W多,数据表还是挺大的,但这不是办法,以后数据更多的时候,一个月有可能就会出现1千万,所以这样分表只是把表缩小了体积,没有多大意义
其实说这么多,我想知道的是,留存率,怎么统计比较好,可以占用空间少,效率又高,注意里面有版本和包名的字段,用处是查询一个包名或者版本3月在4月的留存情况.
作者: minoc 发布时间: 2013-05-22
分去吧 现在都是这样 空间换时间 或者是加个缓存
作者: 弱水寒 发布时间: 2013-05-22
弱水寒 发表于 2013-5-22 15:54
分去吧 现在都是这样 空间换时间 或者是加个缓存
分去吧 现在都是这样 空间换时间 或者是加个缓存
不是说一定要在现在的表基础上分,
而是找到更好的数据存储方式,
刚在又百度了老半天,又找到一个更理想的留存存储方式,不过还不太完善,正在研究中
作者: minoc 发布时间: 2013-05-22
难道你想改变原来的数据存储方式?
作者: 弱水寒 发布时间: 2013-05-22
弱水寒 发表于 2013-5-22 16:03
难道你想改变原来的数据存储方式?
难道你想改变原来的数据存储方式?
把原来的数据分离出来,
文档已经总结好了, 明天就试验,
这样的话表结构会缩小N多,以后数据量大了也更容易分表,100万用户1天也只有100万条数据,但不可能100万用户会同时在这一天使用
其实吧,我现在的想法是,不要把功能全做在一个表里去,可以把每个功能或多个类似的功能做在单独一个表,相同数据可以在多表中重复浪费磁盘空间(当然有限),但可以提高性能及减少问题复杂性,后期更好维护及分表
作者: minoc 发布时间: 2013-05-22
试下mysql merge吧,每月一个表,如果单独查询某个月可以用子表查询,如果查询三个月可查询主表,这样效率就高了很多,另外可以根据需求来修改主表包含的子表如三个月就包含,3,4,5,如两个月就包含3,4
作者: chouxiaozi 发布时间: 2013-05-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28