您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 宿州分类信息网,免费分类信息发布

PHP+MySQL对固定时间段内数据统计优化步骤详解

2024/3/18 15:54:21发布28次查看
这次给大家带来php+mysql对固定时间段内数据统计优化步骤详解,php+mysql对固定时间段内数据统计优化的注意事项有哪些,下面就是实战案例,一起来看一下。
在互联网项目中,对项目的数据分析必不可少。通常会统计某一段时间内每天数据总计变化趋势调整营销策略。下面来看以下案例。
案例
在电商平台中通常会有订单表,记录所有订单信息。现在我们需要统计某个月份每天订单数及销售金额数据从而绘制出如下统计图,进行数据分析。
订单表数据结构如下:
order_idorder_sntotal_priceenterdate
25396 a4e610e250c2d378d7ec94179e14617f 2306.00 2017-04-01 17:23:26
25397 ead217c0533455eecdde39659abcdae9 17.90 2017-04-01 22:15:18
25398 032e6941dad44f29651b53c41f6b48a0 163.03 2017-04-02 07:24:36
此时查询某月各天下单数,总金额应当如何做呢?
一般方法
首先最容易想到的方法,先利用 php 函数 cal_days_in_month() 获取当月天数,然后构造一个当月所有天的数组,然后在循环中查询每天的总数,构造新数组。
代码如下:
$month = '04'; $year = '2017'; $max_day = cal_days_in_month(cal_gregorian, $month, $year);   //当月最后一天 //构造每天的数组 $days_arr = array(); for($i=1;$i<=$max_day;$i++){ array_push($days_arr, $i); } $return = array(); //查询 foreach ($days_arr as $val){ $min = $year.'-'.$month.'-'.$val.' 00:00:00'; $max = $year.'-'.$month.'-'.$val.' 23:59:59'; $sql = "select count(*) as total_num,sum(`total_price`) as amount from `orders` where `enterdate` >= {$min} and `enterdate` <= {$max};   $return[] = mysqli_query($sql); } return $return;
这个sql简单,但是每次需要进行30次查询请,严重拖慢响应时间。
优化
如何使用一个sql直接查询出各天的数量总计呢?
此时需要利用 mysql 的 date_format 函数,在子查询中先查出当月所有订单,并将 enterdate 用 date_format 函数转换为 天 ,然后按天 group by 分组统计。 代码如下:
$month = '04'; $year = '2017'; $max_day = cal_days_in_month(cal_gregorian, $month, $year);   //当月最后一天 $min = $year.'-'.$month.'-01 00:00:00'; $max = $year.'-'.$month.'-'.$max_day.' 23:59:59'; $sql = select t.enterdate,count(*) as total_num,sum(t.total_price) as amount (select date_format(enterdate,'%e') as enterdate,total_price from orders where enterdate between {$min} and {$max}) t group by t.enterdate order by t.enterdate; $return = mysqli_query($sql);
如此,将30次查询减少到1次,响应时间会大大提高。
注意:
1.由于需查询当月所有数据,在数据量过大时,不宜采取本方法。
2.为避免当天没有数据而造成的数据缺失,在查询后,理应根据需求对数据进行处理。
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
php实现单点登录步骤详解
php+rsa生成密钥位数为1024位步骤详解
以上就是php+mysql对固定时间段内数据统计优化步骤详解的详细内容。
宿州分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录