Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] 关于MYSQL5.1的表分区功能,请指点一下。

[复制链接]
永远的超大 发表于 2009-11-12 15:36:22 | 显示全部楼层 |阅读模式
我的做法是这样的。环境:Nginx0.8.24 + PHP5.2.11 + MYSQL5.1.40,都是比较稳定的版本。

一,先备份数据库,这个不用说的。

二,建立一个新的空表。

  1. CREATE TABLE cdb_posts_1 (
  2.   pid int(10) unsigned NOT NULL AUTO_INCREMENT,
  3.   fid smallint(6) unsigned NOT NULL DEFAULT '0',
  4.   tid mediumint(8) unsigned NOT NULL DEFAULT '0',
  5.   `first` tinyint(1) NOT NULL DEFAULT '0',
  6.   author varchar(15) NOT NULL DEFAULT '',
  7.   authorid mediumint(8) unsigned NOT NULL DEFAULT '0',
  8.   `subject` varchar(80) NOT NULL DEFAULT '',
  9.   dateline int(10) unsigned NOT NULL DEFAULT '0',
  10.   message mediumtext NOT NULL,
  11.   useip varchar(15) NOT NULL DEFAULT '',
  12.   invisible tinyint(1) NOT NULL DEFAULT '0',
  13.   anonymous tinyint(1) NOT NULL DEFAULT '0',
  14.   usesig tinyint(1) NOT NULL DEFAULT '0',
  15.   htmlon tinyint(1) NOT NULL DEFAULT '0',
  16.   bbcodeoff tinyint(1) NOT NULL DEFAULT '0',
  17.   smileyoff tinyint(1) NOT NULL DEFAULT '0',
  18.   parseurloff tinyint(1) NOT NULL DEFAULT '0',
  19.   attachment tinyint(1) NOT NULL DEFAULT '0',
  20.   rate smallint(6) NOT NULL DEFAULT '0',
  21.   ratetimes tinyint(3) unsigned NOT NULL DEFAULT '0',
  22.   `status` tinyint(1) NOT NULL DEFAULT '0',
  23.   PRIMARY KEY (pid),
  24.   KEY fid (fid),
  25.   KEY authorid (authorid),
  26.   KEY dateline (dateline),
  27.   KEY invisible (invisible),
  28.   KEY displayorder (tid,invisible,dateline),
  29.   KEY `first` (tid,`first`)
  30. ) TYPE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=15036526 PARTITION BY RANGE (pid) (
  31. PARTITION p01 VALUES LESS THAN (4000000),
  32. PARTITION p02 VALUES LESS THAN (8000000),
  33. PARTITION p03 VALUES LESS THAN (12000000),
  34. PARTITION p04 VALUES LESS THAN (16000000),
  35. PARTITION p05 VALUES LESS THAN (20000000),
  36. PARTITION p06 VALUES LESS THAN (24000000),
  37. PARTITION p07 VALUES LESS THAN (28000000),
  38. PARTITION p08 VALUES LESS THAN (32000000),
  39. PARTITION p09 VALUES LESS THAN (36000000),
  40. PARTITION p10 VALUES LESS THAN (40000000),
  41. PARTITION p11 VALUES LESS THAN (44000000),
  42. PARTITION p12 VALUES LESS THAN (48000000),
  43. PARTITION p13 VALUES LESS THAN (52000000),
  44. PARTITION p14 VALUES LESS THAN MAXVALUE
  45. );
复制代码
三、把数据导入到新的posts表
  1. insert into cdb_posts_1 select * from cdb_posts;
复制代码
四、对两个数据表进行改名

  1. RENAME TABLE `dz`.`cdb_posts` TO `dz`.`cdb_posts_bak` ;
  2. RENAME TABLE `dz`.`cdb_posts_1` TO `dz`.`cdb_posts` ;
复制代码
五、恢复论坛访问

出现问题:打开首页极慢,刷了N次后勉强打开,进入版块后一直刷不出来,MYSQL的CPU占用很高。一直提示"bad gateway",恢复没有分区的表又正常了。

请有经验的兄弟指导一下。谢谢。
wsj5201 发表于 2010-1-13 11:58:26 | 显示全部楼层
帮顶。。。
回复

使用道具 举报

明镜 发表于 2010-3-10 06:50:58 | 显示全部楼层
楼主,我和你做了同样的工作,刚做完分区后开放服务是会不正常大约十几分钟,之后就好了,原因不明
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-9-29 19:14 , Processed in 0.190362 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表