MySQL-大表优化-数据归档

服务环境:

  • Centos7.2.1511
  • percona-toolkit-3.0
信息        数据库IP地址   库名    表名
主数据库    10.58.107.46   unix   sbtest01 
归档数据库  10.58.107.46   unix   sbtest_archiver 

当一个表超过千万行的时候就会对数据库性能造成影响,但如果仅有INSERT操作和少量的SELECT操作,几乎没有UPDATE和DELETE操作的话,相对来说对数据库的性能影响不算很大。


安装及使用方法:

  • 安装percona-toolkit
wget https://www.percona.com/downloads/percona-toolkit/3.0.11/binary/redhat/7/x86_64/percona-toolkit-3.0.11-1.el7.x86_64.rpm
yum localinstall percona-toolkit-3.0.11-1.el7.x86_64.rpm
  • 创建归档表

注:以下是归档示例,数据库是unix,归档的表是sbtest01 ,归档到 sbtest_archiver表中。

use unix;
create table sbtest_archiver like sbtest1 ;
  • 使用percona做数据库归档

注:以下归档命令是把数据归档完之后,并删除掉老的数据,如果用于线上执行前请慎重,如果做完归档不想删除掉老的数据可以使用no-delete参数。

pt-archiver \
--source h=10.58.107.46,P=3306,u=monitor,p=123123,D=unix,t=sbtest1  \
--dest h=10.58.107.46,P=3306,u=monitor,p=123123,D=unix,t=sbtest_archiver  \
--where  'id <= 10000'  --limit=1000 --txn-size=1000 \
--statistics --charset=utf8

参数详解:

--no-delete     #归档时不删除老数据
--limit         #表示每次事务删除的行数
--txn-size      #每个事务提交的行数(读写)
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注