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