syslog大量信息的一个简单处理办法

作者:海贼
出处:http://squallsw.cublog.cn

我的syslog一周大约3500万条记录,数据量太大,索引破坏的很严重,也不可能修复或者重建索引,只能把超过3天的记录全部转移到一个syslog_bak.syslog这个表里,然后在让这个表每个月生成一个新的表syslog+data这种形式的,以便管理和保证实时那张表的查询速度,转移部门就是insert into,我就不写了。

我这里写出后一个,加在crontab里的,每个月10号生成。
引用:
use syslog_bak;
set @sqlstr=concat('alter table syslog rename syslog',DATE_FORMAT(now(),"%Y%m%d"));
prepare stmt from @sqlstr;
execute stmt;
CREATE TABLE `syslog` (
  `facility` varchar(10) default NULL,
  `priority` varchar(10) default NULL,
  `date` date default NULL,
  `time` time default NULL,
  `host` varchar(128) default NULL,
  `message` text,
  `seq` int(10) unsigned NOT NULL auto_increment,
  PRIMARY KEY  (`seq`),
  KEY `date` (`date`),
  KEY `time` (`time`),
  KEY `host` (`host`),
  KEY `priority` (`priority`),
  KEY `facility` (`facility`)
) ENGINE=MyISAM AUTO_INCREMENT=12473740 DEFAULT CHARSET=utf8;