sql 查询近7天 或一个月的流量统计,或者新增人数统计,做数据曲线图

以传统的思路:

如果查询30天的数据, 会for 循环30天,然后再一天一天的数据去查询拼成数组。

这样统计时候会使性能降低。

sql 优化

用了mysql 的函数 date_format

select count(1) as count from 查询的表 group by date_format(创建时间,'%y-%m-%d') ORDER BY create_time desc LIMIT 天数;

一条sql 生成,但是在大型的项目中, 这样效率还是很低的。

系统结构优化

1.如果对数据的详情不是非常重要, 仅仅是统计pv uv。直接用redis 的队列统计,或者访问量 +1 的形式。
2.在凌晨2点的时候, 系统跑一遍上述描述的方法,方法一和方法二都可以,跑完后储存到数据库,第二天读取的时候读取一条数据库即可。

你可能感兴趣的:(php,sql)