MySQL 5.5 创建 线性Hash分区表,并将表文件分布到不同的物理磁盘上

应用环境OLAP,请不要再直接在OLTP环境下参考

要合并不同服务器上的数据,考虑到以后会不断添加游戏区组服务器,所以使用mysql5.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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值