如何解决MySQL 数据库转储导入
我需要一些有关导入和导出 MysqL 8 数据库的详细信息。
-
如果整个数据库在一次转储中备份,是否可以恢复单个表,还是应该导出单个表?
-
将
FOREIGN_KEY_CHECKS
、UNIQUE_CHECKS
和AUTOCOMMIT
设置为0
时,是否对您要从 MysqL 导入的数据库执行此操作?如果是这样,它似乎对我没有影响。如果没有,请提供有关如何进行这些设置的详细信息。 -
是否应该在导出之前对数据库进行 2.) 中的设置以加快导入速度?
这个包含 500 万条记录和多个索引的表的 12 小时导入是为鸟类准备的。
解决方法
- 由于转储是一个几乎仅包含 SQL 命令的大型文本文件,因此您还可以删除其中的部分内容,尤其是您希望跳过的
CREATE TABLE
和INSERT INTO
部分。仅导出数据库的一部分具有相同的效果。有时您没有选择(要么没有可处理大文件的文本编辑器,要么没有可导出的源数据库)。 - 那些是为了在写入(导入)时提高性能,而在读取(导出)时它们没有效果并且没有意义(您在读取时不检查约束)。它们在转储中,因为您总是计划再次导入它 - 它不是导出日志,而只是希望用户友好,因此您不必这样做。手册:
- 没有。导出和导入相互之间没有绑定 - 您不想在读取(导出)数据时禁用任何约束或检查,这样做也不会带来任何好处。
您没有说明的是如何导入以及使用哪个程序:通过控制台和 "mysql" client(即 mysql < data.sql
)?您是否在导入过程中检查了操作系统的性能以发现瓶颈(即磁盘使用率高、交换次数过多、内存不足、CPU 使用率...)?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。