Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2228876
  • 博文数量: 287
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2130
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-31 14:30
个人简介

自己慢慢积累。

文章分类

全部博文(287)

分类: Mysql/postgreSQL

2014-12-19 16:45:30

MySQL 5.5创建线性Hash分区表,并将表文件分布到不同的物理磁盘上
 
要合并不同服务器上的数据,考虑到以后会不断添加游戏区组服务器,所以使用5.5的LINEAR HASH分区,当添加的区组超过hash分区后再添加分区,停机维护时再将新添加的分区表文件分布到其他物理分区上去.
   
下面是建表SQL
 
DROP TABLE IF EXISTS gyyx_middle.`wd_char_info`;
tudou@Gyyx
CREATE TABLE gyyx_middle.`wd_char_info` (
  `dist` int(11) NOT NULL DEFAULT '0',
  `account` varchar(32) NOT NULL DEFAULT '玩家帐户',
  `name` varchar(32) NOT NULL DEFAULT '',
    `create_date`   INT(11) NOT NULL DEFAULT '0',
  `create_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `first_login_ip` int(11) NOT NULL DEFAULT 0,
  `gender` tinyint(11) NOT NULL DEFAULT '0',
    `last_login_date` INT(11) NOT NULL DEFAULT '0',
  `last_login_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `last_login_ip` int(11) NOT NULL DEFAULT 0,
  `glory` int(11) NOT NULL DEFAULT '0',
  `level` mediumint(11) NOT NULL DEFAULT '0',
  `tao` int(11) NOT NULL DEFAULT '0',
  `cash` int(11) NOT NULL DEFAULT '0',
  `nice` int(11) NOT NULL DEFAULT '0',
  `reputation` int(11) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
PARTITION BY LINEAR HASH(`dist`)
PARTITIONS 500;
 
将分区文件为偶数的表文件分布到另一个物理分区上    
 
#!/bin/sh
FILEDIR="/data/mysql5_5_20/data/gyyx_middle/"
MVDIR="/data1/mysql5_5_20/data/gyyx_middle/"
for i in `seq 0 249`
do
i=$[i*2]
mv ${FILEDIR}"wd_char_info#P#p"${i}".MYI" ${MVDIR}"wd_char_info#P#p"${i}".MYI"
mv ${FILEDIR}"wd_char_info#P#p"${i}".MYD" ${MVDIR}"wd_char_info#P#p"${i}".MYD"
done
 
在原目录下建立软链接
 
#!/bin/sh
FILEDIR="/data1/mysql5_5_20/data/gyyx_middle/"
LNDIR="/data/mysql5_5_20/data/gyyx_middle/"
FILELIST=`ls $FILEDIR`
for FILENAME in $FILELIST
do
ln -s ${FILEDIR}${FILENAME} ${LNDIR}${FILENAME}
done


在MYSQL 5.6版本中,此项工作变的很简单了。在创建Partion表时,有参数可以直接设置路径。
阅读(1506) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~