mysql单表备份、单表复制

yumo6666个月前 (03-29)技术文章43

在 MySQL 中,可以通过以下步骤基于已有的表 t_device 创建一个新表 t_device_bk,并将 t_device 表的数据全复制到新表:

方法一:使用 CREATE TABLE 和 INSERT INTO

  1. 创建新表结构
    使用 CREATE TABLE 语句复制表结构:
  • CREATE TABLE t_device_bk LIKE t_device;
  • 这条语句会创建一个与 t_device 表结构完全相同的表 t_device_bk,但不会复制数据。
  1. 复制数据
    使用 INSERT INTO 语句将数据从 t_device 复制到 t_device_bk:
  • INSERT INTO t_device_bk SELECT * FROM t_device;

方法二:使用 CREATE TABLE 和 SELECT

也可以通过一条语句同时完成表结构和数据的复制:

CREATE TABLE t_device_bk AS SELECT * FROM t_device;

这条语句会创建一个新表 t_device_bk,并直接将 t_device 表的数据复制进去。

注意事项

  1. 索引和约束
    如果需要保留原表的索引、主键、外键等约束,建议使用 CREATE TABLE LIKE 方法(方法一),因为这种方法会复制表结构,但不会复制数据。然后通过 INSERT INTO 将数据复制进去。
  2. 数据完整性
    在复制数据时,确保原表 t_device 没有正在进行的写操作,以避免数据不一致。如果需要在复制过程中锁定表,可以使用 LOCK TABLES 语句:
  • LOCK TABLES t_device READ;
    CREATE TABLE t_device_bk AS SELECT * FROM t_device;
    UNLOCK TABLES;
  1. 性能优化
    如果表数据量较大,复制操作可能会耗时较长。可以通过以下方式优化:
  • 在复制数据之前,关闭外键检查:SET FOREIGN_KEY_CHECKS = 0;
    CREATE TABLE t_device_bk AS SELECT * FROM t_device;
    SET FOREIGN_KEY_CHECKS = 1;确保数据库有足够的内存和磁盘空间。

通过以上方法,你可以轻松地基于已有的表 t_device 创建一个新表 t_device_bk 并复制数据。

相关文章

记一次mysql数据库数据自动备份(全量+增量备份)

1 全量备份描述:(1) 每日凌晨1点自动执行脚本进行数据备份并压缩,备份并压缩的数据保存到nas目录/mnt/nas/mysql_data_bak/,保留7天的备份数据(2) 保留7天备份的数据,第...

MySQL的备份与还原,非常规备份,全量备份,增量备份

一、测试数据库的创建 1:官方百万级别的测试数据库:官方测试数据库github网址:https://github.com/datacharmer/test_db下载到目录,解压即可,运行命令:mys...

使用mysqldump+crontab实现Mysql定时备份

一直在用ubuntu16.04 server apt-get 安装环境,客户需求每天0点,12点进行一次数据库的备份。所以写了一个脚本配合crontab,定时执行。首先给mysql建个cnf文件,在脚...

mysql备份方法

MySQL备份的方法有很多种,以下是两种常用的方法:1. 使用mysqldump命令备份mysqldump是MySQL自带的备份工具,可以将MySQL数据库备份为SQL文件,使用方法如下:```mys...

数据库备份软件--Iperius Backup

这款软件可以实现:驱动器映像,备份到NAS,云,FTP,Dropbox,OneDrive,Google Drive,S3 VMware ESXi, vCenter, ESXi Free, Hyper-...

数据库备份工具——mysqldump详解

mysqldump 是 MySQL 提供的一个备份工具,用于创建数据库的逻辑备份。备份生成的是 SQL 脚本文件,该文件包含重建数据库所需的 SQL 语句。以下是 mysqldump 的详细用法:基本...