MySQL InnoDB引擎的表通过拷贝物理文件来进行单表或指定表的复制,可以想到多种方式,今天测试其中2种:

将innodb引擎的表修改为Myisam引擎,然后拷贝物理文件

直接拷贝innodb的表空间文件(前提是独立表空间(默认,通过show variables like 'innodb_file_per_table' 查看))进行复制

一、修改引擎

1.创建一张innodb引擎的表,并插入测试数据;

create table test_tb(id int primary key,c1 varchar(20)) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into test_tb select 1,'c1';insert into test_tb select 2,'c2';

2. 修改引擎

alter table test_tb engine=myisam;

showcreate table test_tb\G

3. 将物理文件拷贝至目标库

cd /data/mysql/mysql3307/data/cd testdbllcd ../testdb2/

pwdll

cp ../testdb/test_tb.*.ll

4.修改权限

chown -R mysql:mysql .

5. 查看结果

记录和源库一致。

6. 将源库及目标库的表引擎修改为innodb

alter table testdb.test_tb engine=innodb;alter table testdb2.test_tb engine=innodb;

二、拷贝.idb物理表空间文件

1.  创建一张innodb的表,为了测试大表的情况,我创建了一张800W记录的表,占用940M空间

/*先创建快速生成连续数的表及存储过程*/

--建表

CREATE TABLE`test_tb2` (

`id`int(11) DEFAULT NULL,

`aa`varchar(20) DEFAULT NULL,

`bb`varchar(20) DEFAULT NULL,

`cc`varchar(20) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;--创建过程

DELIMITER $$CREATE PROCEDURE `sp_test_tb2`(cnt INT)BEGIN

DECLARE i INT DEFAULT 1;TRUNCATE TABLEtest_tb2;INSERT INTO test_tb2 SELECT concat(i,'a'),concat(i,'b'),concat(i,'c') ;WHILE i

INSERT INTO test_tb2 SELECT id + i,concat(id+i,'a'),concat(id+i,'b'),concat(id+i,'c') FROM test_tb2 WHERE id + i<=cnt;SET i = i*2;END;END WHILE;END$$

DELIMITER ;--生成8000000条记录

call sp_test_tb2(8000000);select count(*) from test_tb2;

2. 在目标库创建相同的表名

mysql> usetestdb2;CREATE TABLE`test_tb2` (

`id`int(11) DEFAULT NULL,

`aa`varchar(20) DEFAULT NULL,

`bb`varchar(20) DEFAULT NULL,

`cc`varchar(20) DEFAULT NULL,

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

3. 删除目标表的表空间

alter table test_tb2 discard tablespace;

此时目标库的test_tb2表近剩下数据定义文件,表空间文件已删除

4. 拷贝源库的idb文件

/** 需先flush table */

flush table test_tb2 for export ;

之后拷贝(会生成一个cfg文件 也一并拷贝过去)

拷贝完成后需解锁test_tb2表

unlock tables;

5. 修改表空间文件权限

6. 目标表导入表空间数据(记录较多的时候需要一点时间)

alter table test_tb2 import tablespace;

7. 查看导入结果

结果与源表一致

Tips:

以上2种处理方式都需要源表无写入更新等操作下进行,且需要flush tables 将数据刷新到物理磁盘的文件上。所以建议先锁表或停止业务,待拷贝文件后再恢复写入等操作。

耿小厨已开通个人微信公众号,想进一步沟通或想了解其他文章的同学可以关注我

mysql的innodb表生成的物理文件_MySQL innodb表使用表空间物理文件复制或迁移表相关推荐

  1. mysql数据库存储引擎和索引的描述_Mysql InnoDB引擎的索引与存储结构详解

    前言 在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的. 而MySql数据库提供了多种存储引擎.用户可以根据不同的需求为数据表选择不同的存储引擎,用户也 ...

  2. 计算机硬盘的文件怎么删除文件,如何清理磁盘多余文件 电脑清除多余的空间及文件的图文步骤...

    深度清理你的电脑: 一.清理C盘 开始--搜索--文件或文件夹--全部或部分文件名处填写"cookie",下面的在这里寻找选择"本地磁盘C"--下面" ...

  3. mysql备份数据库怎么还原数据库文件_mysql如何备份和还原数据库文件

    MySQL使用命令备份和还原数据库 这篇文章主要介绍了MySQL使用命令备份和还原数据库,本文使用Mysql内置命令实现备份和还原,比较简单,需要的朋友可以参考下 数据库在使用当中都会有数据库备份工作 ...

  4. mysql 数据写到本地文件_mysql如何导出数据到本地文件

    mysql如何导出数据到本地文件 发布时间:2020-09-23 11:41:03 来源:亿速云 阅读:55 作者:Leah 本篇文章给大家分享的是有关mysql如何导出数据到本地文件,小编觉得挺实用 ...

  5. mysql导入dat文件_MySql导入和抽取大数量级文件数据

    一.情况介绍 需要处理的文件是一个3.41G的csv格式文件,现在需要把它导入数据库,进行后续处理和分析. 二.导入数据 该文件数据量庞大,无法用excel或者editplus++之类普通软件打开,于 ...

  6. mysql存储csv文件_MySQL 查询结果保存为CSV文件

    MySQL支持将查询结果直接导出为文本格式,格式如下: into outfile '导出的目录和文件名'                  指定导出的目录和文件名 fields terminated ...

  7. MySQL使用Navicat自动生成ER图

    MySQL使用Navicat自动生成ER图 左侧选中对应数据库,并且选中上方工具栏中的"表". 选中上图所示表中需要生成E-R图的表后,鼠标右键点击"逆向表到模型-&qu ...

  8. OpenCV使用GDAL读取地理空间栅格文件

    OpenCV使用GDAL读取地理空间栅格文件 使用GDAL读取地理空间栅格文件 目标 代码 如何使用GDAL读取栅格数据 笔记 通常应避免纬度/经度(地理)坐标 寻找角坐标 结果 使用GDAL读取地理 ...

  9. 37 FI配置-财务会计-固定资产-组织结构-复制参考折旧表/折旧范围表

    业务背景:复制参考折旧表/折旧范围表 事务码: EC08 SPRO路径:SPRO->财务会计->资产会计核算->组织结构->复制参考折旧表/折旧范围表 第1步,SPRO路径进入 ...

最新文章

  1. 全球最大智能模型“悟道”首次落地:数字人+终端AI助手,支持NVIDIA GTX单卡机运行百亿大模型
  2. 2012年生活方向盘
  3. sizeof与strlen使用中的问题
  4. java 多线程下载文件
  5. 【英语学习】【WOTD】emote 释义/词源/示例
  6. Android之RecyclerView实现时光轴
  7. mysql dump锁表_mysqldump 锁表和解锁语句
  8. 今年要如何准备?想去阿里/美团/头条做机器学习工程师
  9. 【论文笔记】Depth Map Prediction from a Single Image using a Multi-Scale Deep Network
  10. java snap7_Snap7 referance manual PDF 下载
  11. 【详细步骤】小米路由器认证锐捷账号教程(mentohust)
  12. 三星研究院:发现腾讯的“阿喀琉斯之踵”,互联网营销
  13. Codeforces 364D Ghd(随机化)
  14. MQTT服务质量等级及抓包分析
  15. Python 代码实现ArcGis 标注Label转注记Annotation
  16. 工程伦理第三章学习笔记2020最新
  17. 基于ssm+jsp的大学生体能训练营管理系统毕业设计源码211633
  18. 教你修改电脑mac地址图解教程
  19. 2022应届校招面试总结
  20. 15支持哪些数据库版本 tfs_TFS数据库架构(TFS Database Architecture)

热门文章

  1. 腾讯移动分析系统揭密
  2. 关于ngx_trylock_accept_mutex的一些解释
  3. RabbitMQ服务客户端的的业务逻辑
  4. 万能makefile深入浅出- 第一篇
  5. Redis java API ——Jedis的使用
  6. P8实战(四):多种分布式锁实现
  7. 网络协议之:还在用HTTP代理?过时了,快试试SOCKS5
  8. 看动画学算法之:递归和递归树
  9. 你用或者不用:线程中synchronized关键字使用总结
  10. CentOS设置文本启动方式(命令行模式)