正如标题所说,我没有找到任何原因,我自己也想不通为什么将 sql 文件导入本地以太网上的 mysql 数据库如此慢,即使对于只有 4MB 的文件,但 CPU 使用率约为 1 % 和内存更少..
我通过bigdump上传一个4MB的sql文件然后发出一个得到了上面的结果
top
远程主机上的命令:当导入工作时,进程使用了 1% 的 CPU。 那么计算机一直在做什么?
编辑:甚至通过简单地使用本地文件导入和类似命令来完全避免网络
mysql -u root -ppassword database_name < database.sql
需要很长时间,但内存和 cpu 的使用率非常低..
谢谢
最佳答案
您没有提供足够的信息来准确回答您的问题。
但是您的 MySQL 服务器极有可能受 I/O 限制。在上传表格时,您很可能会用尽硬盘存储空间。
我怀疑您正在导入的表是 InnoDB 表,并且您在每次插入后都进行了隐式提交。也有可能您正在加载一个包含大量索引的表。
看看这个页面:
http://dev.mysql.com/doc/refman/5.5/en/commit.html
您可以尝试使用您的 SQL 数据编辑该文件,以包装大约 100 个 INSERT
语句的 block ,如下所示。
START TRANSACTION;
INSERT ...
...
INSERT ...
COMMIT;
START TRANSACTION;
INSERT ...
...
INSERT ...
COMMIT;
START TRANSACTION;
INSERT ...
...
INSERT ...
COMMIT;
它将减少事务数量并减少服务器 I/O。
你的表可能还有一堆键;您可以禁用更新每一行的这些键,并在上传完成后执行。这可以节省大量时间。
这是一篇文章。
关于mysql - 为什么使用 phpmyadmin 导入或 bigdump 将 sql 文件上传到 mysql 数据库不使用 CPU 时间但速度太慢了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16265807/