问答 / 1 / 24 / 创建于 3年前 / 更新于 3年前
count(Db->table->select())
现在业务么?现在纯查询时间多久,执行计划发下
如果你有很多范围查询啊 什么的 把查询结果的id拿去缓存 然后下次查询查询就用id 索引查询 很快
我现在也有这个问题,要统计每天得消费用户,每天得订单数量。。。。各种统计 而且还要时时得 我说缓存5分钟老板都不愿意,现在订单数据大概10W条查询速度2.5s 怎么做到毫秒查询
单表 千万级别数据库优化,忽略cpu,内存,硬盘性能瓶颈问题
select * from t where id in (select id from t where create_time between 'xxx' and 'xxxx' limit 7654321,50)
这时候就很有必要做数据冗余了
你的思路是对的,只要是统计相关的,都不能扫表查询,数据量一大,请求数量多,很容易把表锁死。建统计表,统计每日数据,往日的去查统计表就可以了,今日的去才去查数据表。
若只统计人数等信息,是否可以单独开一个表进行维护,当前总数,注册新用户后 + 1; 或 redis 代替 mysql 获取当前数 +1
用 redis 统计可不可以呢
统计时获取缓存数据再加上今天的数据量
只用 redis 就可以吧,每新增一条数据 redis 就加一,就不需要缓存和 DB 加起来了
redis 统计总数量确实可以,但是 redis 也有局限性,不支持个性化统计,比如公司的员工只能看自己的统计,小组组长只能看自己分组的统计数据,redis 就不好用了。我想看按天的统计要如何保存到 redis?后来又想看最近3天,7天,1个月的,又如何更新?后来又要看去年6月份的呢?
@kis龍 题主说的是 总数统计所以需要redis来做 几天一个月的可以走时间索引 若一月数据量也很巨大要考虑别的方案
clickhouse了解下
千万的话得考虑优化成列式存储了,hbase
我要举报该,理由是:
现在业务么?现在纯查询时间多久,执行计划发下
如果你有很多范围查询啊 什么的 把查询结果的id拿去缓存 然后下次查询查询就用id 索引查询 很快
单表 千万级别数据库优化,忽略cpu,内存,硬盘性能瓶颈问题
…. 目前想不到了,欢迎补充
这时候就很有必要做数据冗余了
你的思路是对的,只要是统计相关的,都不能扫表查询,数据量一大,请求数量多,很容易把表锁死。
建统计表,统计每日数据,往日的去查统计表就可以了,今日的去才去查数据表。
若只统计人数等信息,是否可以单独开一个表进行维护,当前总数,注册新用户后 + 1; 或 redis 代替 mysql 获取当前数 +1
用 redis 统计可不可以呢
只用 redis 就可以吧,每新增一条数据 redis 就加一,就不需要缓存和 DB 加起来了
clickhouse了解下
千万的话得考虑优化成列式存储了,hbase