Mysql系列总结
今天做一个限制时间节点的日统计查询
使用的数字格式统计时间,但是失效了
select count(1) from pm_report where pm_report.create_time between 20210316160123 and 20210318160123;
后面这串数字当时多写了两位,由此判断最大位数为14位,即时间转换的数字格式,
第二个问题是count(1)和count(*)的性能问题
首先没加索引
precision_marketing> select count(1) from pm_report where pm_report.create_time between 20210316160123 and 20210318160123
[2021-03-18 09:25:11] 1 row retrieved starting from 1 in 26 ms (execution: 8 ms, fetching: 18 ms)
precision_marketing> select count(*) from pm_report where pm_report.create_time between 20210316160123 and 20210318160123
[2021-03-18 09:25:18] 1 row retrieved starting from 1 in 36 ms (execution: 7 ms, fetching: 29 ms)
count(1)快10ms
网上说count(1)和count()差不多,Innodb做了相应的优化对count()
所以还是使用count(1)比较好