Mysql四种常见备份表方式,历史表
作者:mmseoamin日期:2023-12-20

1、将表备份到物理机

mysqldump -h 域名 -P 端口 -u用户 -p密码   库名  表名 > /路径/表名.{$date}.bak

2、将表备份在库里面(create复制表结构、insert复制表内容)

create table one_bak like one;  复制表结构
insert into one_bak select * from one; 复制表内容

3、将表备份在库里面(create table as备份)

注:与2步骤备份在库里面不同的是 as 备份表不会备份主键和外键,只备份表数据

create table one_bak as select * from one;

4、大家都知道日志文件,具有“只追加写不修改”的属性,历史表和日志文件差不多,也具有这个属性。

同时和日志文件一样,历史表也具有“顺序读”和“随机读”的特点,所以有时历史表会加一些索引。

那么问题来了:随着时间的推移,历史表数据会越来越多,使其“追加写”的性能越来越差,那现在应该怎么办呢?

其中一个方法就是历史表热备

1. 按照原历史表新增一个新表(空表):

mysql> show create table history_log\G

mysql> create table history_log_new ...;

2. 给历史表重命名,并将新表重命名为历史表:

mysql> RENAME TABLE history_log to history_log_bak_20230717, history_log_new to history_log;

 


如果本篇文章对你有帮助的话,很高兴能够帮助上你。

当然,如果你觉得文章有什么让你觉得不合理、或者有更简单的实现方法又或者有理解不来的地方,希望你在看到之后能够在评论里指出来,我会在看到之后尽快的回复你。