mysql中按年月统计的一些命令性能比较
2017-05-25 14:43
591 查看
今天大致上考虑统计每月的订单量,那测试库中的一百多万条数据测试一下,
大致结果如下:
1. select year(createtime) years, date_format(createtime,'%Y%m') months,count(bidding_id) from au_bidding_log group by years,months with rollup;
正在显示第 0 - 22 行 (共 23 行, 查询花费 8.8775 秒。)
2. select year(createtime) years, date_format(createtime,'%Y%m') months,count(bidding_id) from au_bidding_log group by years,months;
正在显示第 0 - 18 行 (共 19 行, 查询花费 3.1377 秒。)
可见,使用了rollup命令后,sql语句执行的更慢,得不偿失。
如果仅为了获取每年的销售情况,可以在代码中累加即可,不要用rollup语句比较好。
rollup命令确实很好用,如果既想统计出每月的销量也想统计出每年的销量,最后再统计出总销量,可以用上述的第一条sql命令,
查出来的结果如下:
如果需要分别按年/按月来统计的话,以下3条语句中,最后一条性能最好,但是出来的结果需要在代码中二次处理才行,就是截取出年份再统计一次即可。
如果仅仅是按照月份来统计销售额的话,以下这两条语句均能实现,性能对比如下:
3.select date_format(createtime,'%Y%m') months,count(bidding_id) from au_bidding_log group by months;
正在显示第 0 - 18 行 (共 19 行, 查询花费 3.1339 秒。)
4. select substr(createtime,1,7) months,count(bidding_id) from au_bidding_log group by months ;
正在显示第 0 - 18 行 (共 19 行, 查询花费 2.8838 秒。)
按月份统计数据更好一些的写法是 使用substr()函数的那条记录
大致结果如下:
1. select year(createtime) years, date_format(createtime,'%Y%m') months,count(bidding_id) from au_bidding_log group by years,months with rollup;
正在显示第 0 - 22 行 (共 23 行, 查询花费 8.8775 秒。)
2. select year(createtime) years, date_format(createtime,'%Y%m') months,count(bidding_id) from au_bidding_log group by years,months;
正在显示第 0 - 18 行 (共 19 行, 查询花费 3.1377 秒。)
可见,使用了rollup命令后,sql语句执行的更慢,得不偿失。
如果仅为了获取每年的销售情况,可以在代码中累加即可,不要用rollup语句比较好。
rollup命令确实很好用,如果既想统计出每月的销量也想统计出每年的销量,最后再统计出总销量,可以用上述的第一条sql命令,
查出来的结果如下:
如果需要分别按年/按月来统计的话,以下3条语句中,最后一条性能最好,但是出来的结果需要在代码中二次处理才行,就是截取出年份再统计一次即可。
如果仅仅是按照月份来统计销售额的话,以下这两条语句均能实现,性能对比如下:
3.select date_format(createtime,'%Y%m') months,count(bidding_id) from au_bidding_log group by months;
正在显示第 0 - 18 行 (共 19 行, 查询花费 3.1339 秒。)
4. select substr(createtime,1,7) months,count(bidding_id) from au_bidding_log group by months ;
正在显示第 0 - 18 行 (共 19 行, 查询花费 2.8838 秒。)
按月份统计数据更好一些的写法是 使用substr()函数的那条记录
相关文章推荐
- Mysql中一些比较有用的命令
- Oracle 和 mysql 的一些简单命令对比参照
- SQLite数据库与其它一些数据库的性能比较
- PostgreSQL与MySQL命令的使用比较
- Oracle和mysql 的一些简单命令对比参照
- Oracle 和 mysql 的一些简单命令对比参照
- MSSQL和MYSQL的性能比较
- mysql的一些常见命令
- mysql的一些命令(初学)
- MySQL不同版本间的性能比较
- MySQL下数据表混乱的字符编码处理以及一些处理字符编码时的常用命令整理
- 用PHP连mysql和oracle数据库性能比较
- Oracle 和 mysql 的一些简单命令对比参照
- Oracle 和 mysql 的一些简单命令对比参照
- Oracle 和 mysql 的一些简单命令对比参照
- 用PHP连mysql和oracle数据库性能比较
- Oracle 和 mysql 的一些简单命令对比参照
- MySQL两种表存储结构MyISAM和InnoDB的性能比较测试
- 用PHP连mysql和oracle数据库性能比较
- 测试回顾版-AIX尝鲜-Ladrunner监控AIX,以及一些查看性能的命令-监控工具nmon+cacti