Chinaunix首页 | 论坛 | 博客
  • 博客访问: 308620
  • 博文数量: 65
  • 博客积分: 2570
  • 博客等级: 少校
  • 技术积分: 730
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 14:04
个人简介

苦逼房奴一枚

文章分类

全部博文(65)

文章存档

2017年(19)

2016年(5)

2013年(6)

2012年(1)

2011年(3)

2009年(5)

2008年(26)

我的朋友

分类: Mysql/postgreSQL

2008-08-25 11:20:23

可以转载,转载请著名作者和出处,谢谢,特别鄙视转载后扣上自己名字的哥们
 
 
我的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;
阅读(1440) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~