MySQL间隔1秒不工作

时间:2016-06-27 17:40:53

标签: mysql percona syslog-ng

我正在向Percona发送syslog-ng。我有不同的日志源过滤到不同的MySQL表。我正在尝试确定每秒,分钟和小时的日志数量。

这就是表格的创建方式:

CREATE TABLE syslog.switchlogs (
  host varchar(40) DEFAULT NULL,
  facility varchar(10) DEFAULT NULL,
  level varchar(10) DEFAULT NULL,
  tag varchar(10) DEFAULT NULL,
  program varchar(50) DEFAULT NULL,
  msg text,
  seq bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (seq),
  KEY host (host),
  KEY timestamp (timestamp),
  KEY host_timestamp (host,timestamp)
) ENGINE=InnoDB;

大多数表都得到了我期待的结果:

上一小时:

SELECT count(seq) as thecount FROM syslog.switchlogs WHERE timestamp>=DATE_SUB(NOW(),INTERVAL 1 HOUR);

最后一刻:

SELECT count(seq) as thecount FROM syslog.switchlogs WHERE timestamp>=DATE_SUB(NOW(),INTERVAL 1 MINUTE);

最后一秒:

SELECT count(seq) as thecount FROM syslog.switchlogs WHERE timestamp>=DATE_SUB(NOW(),INTERVAL 1 SECOND);

我得到的结果如下:

小时:804
分钟:16
第二:1

我的一张桌子有VMware日志,我从计数中得到奇怪的结果......

小时:30,180
分钟:24,278
第二:24,160左

这显然是错的。如果我查看表格中的最后50个日志,那么最后一秒中只有10个,最后一分钟中有39个。为什么上面的SQL没有按预期工作?

0 个答案:

没有答案