mysql水平切表_杂谈MySQL水平切分工具(pt-archiver)

什么是水平切分?

水平切分是按照某个字段的某种规则,把数据切分到多张数据表,或者存到归档数据库,起到缩表的效果,提高数据库查询速度。

那么,如何进行水平切分?

废话不多说,上干货!推荐一个工具 “pt-archiver”,它是"Percona Toolkit" 工具集的一个子工具。用于将MySQL 进行水平切分。可归档至另一个mysql或 dump 成一个符合LOAD DATA INFILE 的文件。The website for pt-archiver​www.percona.com

如果没有安装pt-archiver

For Mac OS

brew install percona-toolkit

For liunx

sudo apt-get install percona-toolkit

一、归档至另一个MySQL。

执行语句

pt-archiver --source h=$SIP,P=$SPORT,u=$SUSER,p=$SPASS,D=$SDATABASE,t=$STABLE,A=utf8 --dest h=$AIP,P=$APORT,u=$AUSER,p=$APASS,D=$ADATABASE,t=$ATABLE,A=utf8 --charset=utf8 --where "$WHERE" --progress=10000 --txn-size=10000 --statistics --limit=10000参数详解

--source 源数据选项

h = 服务ip

P = 端口

u = 用户名

p = 密码

D = 数据库

t = 表

A = 编码

-- dest 目标数据库选项

参数同上

--where 查询条件

--progress 每指定行数输出处理信息

--txn-size 每指定行数提交一次事务

--statistics 输出最终分析

--limit 每次取出指定行数交给pt-archiver 处理。

二、归档至文件

只需将 “--dest” 相关参数换成 “--file”,详见下文

pt-archiver --source h=$SIP,P=$SPORT,u=$SUSER,p=$SPASS,D=$SDATABASE,t=$STABLE,A=utf8 --file '/var/log/archive/%Y-%m-%d-%D.%t' --charset=utf8 --where "$WHERE" --progress=10000 --txn-size=10000 --statistics --limit=10000

其他参数请参阅上文提到的官方文档,如阅读英文有困难,可在知乎或其他搜索引擎搜索“pt-archiver 参数”

另:写了一份自动同步脚本,可以放入“crond” 内自动化同步。写的不好,如有指教,请提出建议。感谢~shell 自动化脚本文件​github.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值