mysql 留存率统计_留存率,数据表分表问题
你的位置:
问答吧
-> PHP基础
-> 问题详情
留存率,数据表分表问题
本帖最后由 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月的留存情况.
作者: 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
mysql 留存率统计_留存率,数据表分表问题相关推荐
- asp.net mysql 读写分离_.NET Core实现分表分库、读写分离的通用 Repository功能
首先声明这篇文章不是标题党,我说的这个类库是 FreeSql.Repository,它作为扩展库现实了通用仓储层功能,接口规范参考 abp vnext 定义,实现了基础的仓储层(CURD). 安装 d ...
- 1亿条数据如何分表100张到Mysql数据库中(PHP)
来源:http://www.jb51.net/article/70265.htm 这篇文章主要介绍了当数据量猛增的时候如何把一亿条数据分表100张到Mysql数据库中,需要的朋友可以参考下 下面通过创 ...
- php 分表 实战,PHP实战:1亿条数据如何分表100张到Mysql数据库中(PHP)
<PHP实战:1亿条数据如何分表100张到Mysql数据库中(PHP)>要点: 本文介绍了PHP实战:1亿条数据如何分表100张到Mysql数据库中(PHP),希望对您有用.如果有疑问,可 ...
- mysql 5000万条数据库_1亿条数据如何分表100张到Mysql数据库中(PHP)
下面通过创建100张表来演示下1亿条数据的分表过程,具体请看下文代码. 当数据量猛增的时候,大家都会选择库表散列等等方式去优化数据读写速度.笔者做了一个简单的尝试,1亿条数据,分100张表.具体实现过 ...
- mysql数据库计算全部女生_使用mysql存储过程-统计某个数据库下的所有表的记录数...
使用 mysql 存储过程 - 统计某个数据库下的所有表的记录数 其中用到了游标 (cursor) ,循环 (loop) ,动态 SQL 预处理 (prepare) 等技术,特 此记录一下. [sql ...
- mysql pdo 插入没效果_MySQL分库分表后用PHP如何来完美操作
当单表达到几千万时,查询一次要很久,如果有联合查询,有可能会死在那 分库分表主要就是解决这个问题,减小数据库的负担,缩短查询时间分库 1)按功能分 用户类库.商品类库.订单类库.日志类.统计类库... ...
- mysql分表全局查询_mysql如何查询多样同样的表/sql分表查询、java项目日志表分表的开发思路/按月分表...
之前开发的一个监控系统,数据库的日志表是单表,虽然现在数据还不大并且做了查询sql优化,不过以后数据库的日志表数据肯定会越来越庞大,将会导致查询缓慢,所以把日志表改成分表,日志表可以按时间做水平分表, ...
- 百亿数据分库分表核心流程详解
前言 俗话说:面试造火箭,入职拧螺丝.尽管99.99%的业务都不需要用到分库分表,但是分库分表还是频繁出现在大厂的面试中. 分库分表涉及到的内容非常多,有很多细节,如果在面试中被问到了,既是挑战,也是 ...
- CNZZ 移动统计_移动数据统计_移动应用分析_ APP统计
CNZZ 移动统计_移动数据统计_移动应用分析_ APP统计 http://mobile.cnzz.com/help.php?h=Android_SDK_Download_and_Usage_Manu ...
最新文章
- 操作系统学习1:操作系统概述
- HTMLCanvasElement.toDataURL()
- html li 怎么合并,HTML—CSS-case(合并boder / 滑动门 / 去除li边框 /css三角形原理)...
- flutter 类似日期选择器控件_一切皆组件的Flutter,安能辨我是雄雌
- 基于OpenCV的findContours查找图像连通域,并进行排序
- 长沙,企业上市“再加速”
- Tomcat服务器环境配置--查看bat文件(解决Neither the JAVA_HOME nor the JRE_HOME environment variable is defined问题)
- Sentinel(十七)之启动配置项
- 《linux核心应用命令速查》连载七:bg:后台运行命令
- Python网络爬虫第一弹《Python网络爬虫相关基础概念》
- 网上交易安全-使用JAVA调用U盾进行客户认证
- Delphi程序实现多语言功能
- python数字黑洞123_演示数字黑洞现象
- 如何在win10中迅速打开命令提示符
- U-GAT-IT 翻译
- 03一般过去时和主谓双宾
- Win10怎么删除快速访问中最近使用文件记录
- 币圈炒币如何避免被额韭菜?
- css预处理全部知识点一文讲清楚
- 这,这,是个神人,我喜欢