• 统计网站某天的点击数


    create table daily_hit_counter(

    day date not null,

    slot tinyint unsigned not  null,

    cnt int unsigned not null,

    primary key (day,slot)

    )engine=innodb

    insert into daily_hit_counter(day,slot,cnt) values(CURRENT_DATE,RAND()*100,1) ON DUPLICATE KEY UPDATE CNT=CNT+1;

    DUPLICATE KEY UPDATE  的作用是当他的主键(day,slot)存在时,就修改数据,不存在则添加数据;

    如果希望减少表的行数,以避免表变得太大,可以写个周期执行任务,合并所有结果到每个日期的第一条数据,然后删除每个日期的其他数据;

    update daily_hit_counter as c inner join (select day,sum(cnt) as cnt, min(slot) as mslot from daily_hit_counter group by day ) as x using(day)

     set c.cnt=if(c.slot=x.mslot,x.cnt,0),c.slot=if(c.slot=x.mslot,0,c.slot);

    delete from daily_hit_counter where slot <> 0 and cnt=0;

    统计某天的点击数

    select sum(cnt) from daily_hit_counter  where date=日期

  • 相关阅读:
    Go 映射 (map)
    Go 字节 (byte) & 文字符号 (rune)
    Go 数组(array) & 切片(slice)
    Go 字符串 (string)
    Go 变量(var) & 常量(const)
    Go 循环 (for)
    Go 函数
    Go package: strings
    Linux crontab (定时任务)
    Python gc
  • 原文地址:https://www.cnblogs.com/lixiuyuan999/p/6379629.html
Copyright © 2020-2023  润新知