如下:

我在MySQL中有一张表,我只想导出其中user*的数据。

导出:

测试。
从数据库中删除user*的数据:

用刚才导出的文件,执行导入:

再次查看数据库状态:


可以看到,数据虽然回来了。
但是影响了导入前已有的数据。

看看导出的数据文件:

可以看到:
导出文件包含:DROP TABLE IF EXISTS,故而影响了原有数据。

这个语句【DROP TABLE】并不是总会生成的,你需要选择不要生成:

启用“–skip-add-drop-table”再次执行导出:

对比不使用“–skip-add-drop-table”的导出文件:

可以看到,已经没有DROP TABLE了。

——————————————————
再次模拟部分数据(差异数据)导出导入的操作。

当前的数据情况:

执行导出:

此时我们有两份不包含“DROP TABLE”语句的导出数据:
mysql_db_me_user_userlike_no_drop_table.dmp,单独的where条件筛选后的数据。
mysql_db_me_no_drop_table.dmp,完整的数据库数据,没有经过where条件帅选。

先测试单独的where的导出数据
删除数据:

执行导入:

导入失败。
这时候数据库是没有被影响的:

将其中SQL语句提取出来,单独导入:

导入成功。

查看数据库状态:

差异数据导入成功,并且,也没有影响已有数据。

再测试完整的导出数据:
删表数据:

从全备中抽出INSERT:

执行导入前,查看数据库状态:

执行导入:

导入后:


虽然导入成功了,但是数据库的总大小却变了。
测试前的包含差异数据的总大小:389120,现在却是:745472。
可见非差异的数据,当前库中有两份冗余。

MySQL的数据恢复,还是有很多问题的。
——————————————————
Done。

说点什么

avatar

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  Subscribe  
提醒
隐藏
变装