可以转载,转载请著名作者和出处,谢谢,特别鄙视转载后扣上自己名字的哥们
我的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;
阅读(1519) | 评论(0) | 转发(0) |