如题,我想要每天计算一次过去24小时里该表新增和更新的数据记录有多少条,   应该用什么做呢,存储过程吗,麻烦告诉我,谢谢。

解决方案 »

  1.   

    这个表中有什么字段可以表明某条记录是 什么时候被 新增和更新的吗?
    比如你的表中有两个字段 , 创建时间,更新时间
    这样可以直接用查询得出 过去24小时里该表新增和更新的数据记录有多少条但如果当天增加,又马上删除了的,和一天中被更新多次的则有问题。如果需求要这样。 两种方案一。增加一个这张表A更新记录表L,在这个表A的触发器中向表L插入记录。
    二。直接利用MySQL自身的logfile,logfile中已经有所有的insert/update/delete的日志,你可以通过自己的程序来读这个logfile得到对某个表的操作统计。
    或者激活二进制日志,然后通过mysqlbinlog 来查看日志。
    或者激活日志到表中,然后直接访问日志表得到记录(不推荐,会影响MySQL效率,日志写表比写到文件会多占用系统资源)
    
      

  2.   

    我现在要统计每天这张表里更新和修改了多少条记录,并且把这个结果每天存到另一张表里,
    mysql有类似的任务计划吗?或者存储过程中有定时执行?
      

  3.   


    这儿有个例子。但更推荐在操作系统的计划任务或cronTab中实现。 event 目前好象还不太稳定。delimiter |CREATE EVENT e_daily
        ON SCHEDULE
          EVERY 1 DAY
        COMMENT 'Saves total number of sessions then clears the table each day'
        DO
          BEGIN
            INSERT INTO site_activity.totals (time, total)
              SELECT CURRENT_TIMESTAMP, COUNT(*) 
                FROM site_activity.sessions;
            DELETE FROM site_activity.sessions;
          END |delimiter ;
      

  4.   

    如果是5.0以上可以使用表的triger来实现,在表上所有的update ,insert 时就在日志表中插入一条记录。