微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL 数据库转储导入

如何解决MySQL 数据库转储导入

我需要一些有关导入和导出 MysqL 8 数据库的详细信息。

  1. 如果整个数据库在一次转储中备份,是否可以恢复单个表,还是应该导出单个表?

  2. FOREIGN_KEY_CHECKSUNIQUE_CHECKSAUTOCOMMIT 设置为 0 时,是否对您要从 MysqL 导入的数据库执行此操作?如果是这样,它似乎对我没有影响。如果没有,请提供有关如何进行这些设置的详细信息。

  3. 是否应该在导出之前对数据库进行 2.) 中的设置以加快导入速度?

这个包含 500 万条记录和多个索引的表的 12 小时导入是为鸟类准备的。

解决方法

  1. 由于转储是一个几乎仅包含 SQL 命令的大型文本文件,因此您还可以删除其中的部分内容,尤其是您希望跳过的 CREATE TABLEINSERT INTO 部分。仅导出数据库的一部分具有相同的效果。有时您没有选择(要么没有可处理大文件的文本编辑器,要么没有可导出的源数据库)。
  2. 那些是为了在写入(导入)时提高性能,而在读取(导出)时它们没有效果并且没有意义(您在读取时不检查约束)。它们在转储中,因为您总是计划再次导入它 - 它不是导出日志,而只是希望用户友好,因此您不必这样做。手册:
  1. 没有。导出和导入相互之间没有绑定 - 您不想在读取(导出)数据时禁用任何约束或检查,这样做也不会带来任何好处。

您没有说明的是如何导入以及使用哪个程序:通过控制台和 "mysql" client(即 mysql < data.sql)?您是否在导入过程中检查了操作系统的性能以发现瓶颈(即磁盘使用率高、交换次数过多、内存不足、CPU 使用率...)?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。