开发者社区> 问答> 正文

高性能MySQL,如何求出24小时发贴的数量?

看高性能MySQL的时候,看到一个如何求出过去24小时发布的信息
`CREATE TABLE msg_per_hr{

hr DATETIME NOT NULL, cnt INT UNSIGNED NOT NULL, PRIMARY KEY(hr)

};//文中所说的另起一个汇总的表`
文中说:把下面3个查询的结果相加,就得到过去24小时内发布消息的精确数量了
1、`SELECT SUN(cnt) FROM msg_per_hr WHERE hr

          BETWEEN
               CONCAT(LEFT(NOW(), 14), '00:00') -INTERVAL 23 HOUR
        AND
                CONCAT(LEFT(NOW(), 14), '00:00') - INTERVAL 1 HOUR;`

2、`SELECT COUNT(*) FROM message

     WHERE
            posted >= NOW() - INTERVAL 24 HOUR
     AND
             posted < CONCAT(LEFT(NOW(), 14), '00:00') - INTERVAL 23 HOUR;`

3、SELECT COUNT(*) FROM message WHERE posted >= CONCAT(LEFT(NOW(), 14), '00:00');
既然有了汇总表,那么直接在汇总表查询不就行了吗?为啥还要去庞大的message表count?
3个查询的结果相加,不知道其逻辑关系是怎么,还有就是第二条语句 一时是NOW() - INTERVAL 24 HOUR 一时又是CONCAT(LEFT(NOW(), 14), '00:00') - INTERVAL 23 HOUR
不太明白,求大神解惑。

展开
收起
落地花开啦 2016-02-14 10:24:25 3242 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像