3

正如标题所说,我找不到任何理由,我也无法弄清楚为什么即使对于只有 4MB 的文件,将 sql 文件导入本地以太网上的 mysql 数据库也如此缓慢,但 CPU 使用率约为 1% 和内存甚至更少..

我通过使用 bigdump 上传 4MB 的 sql 文件然后发出

  top

远程主机上的命令:当导入工作时,进程使用 1% 的 CPU。那么,电脑到底在做什么呢?

编辑:甚至通过简单地使用带有类似命令的本地文件导入来完全避免网络

  mysql -u root -ppassword database_name < database.sql

需要永远,但内存和cpu的使用率非常低..

谢谢

4

3 回答 3

1

我在导入 mysql 转储时也遇到了这个问题。每张有大约 10 条记录的表大约需要大约 10 条记录。1分钟的时间。我设法通过调整 mysql.ini 文件来加快速度。我在 mysql.ini 文件中修改了以下值:

  1. max_allowed_pa​​cket = 32M
  2. innodb_buffer_pool_size = 32M

然后重启mysql服务。请确保不要增加超过总 RAM 内存的 50%。

于 2014-06-30T06:55:56.843 回答
1

您没有提供足够的信息来准确回答您的问题。

但是你的 MySQL 服务器很有可能是 I/O 绑定的。当您上传表格时,您很可能会敲打您的硬盘存储。

我怀疑您要导入的表是 InnoDB 表,并且您在每次插入后都进行了隐式提交。您也可能正在加载一个包含大量索引的表。

看看这个页面:

http://dev.mysql.com/doc/refman/5.5/en/commit.html

您可以尝试编辑包含 SQL 数据的文件,以包装大约 100INSERT条这样的语句块。

 START TRANSACTION;
 INSERT ...
   ...
 INSERT ...
 COMMIT;
 START TRANSACTION;
 INSERT ...
   ...
 INSERT ...
 COMMIT;
 START TRANSACTION;
 INSERT ...
   ...
 INSERT ...
 COMMIT;

它将减少事务数量并减少服务器 I/O。

你的桌子也可能有一堆钥匙;您可以禁用更新每一行的这些键,并在上传完成后执行。这可以节省大量时间。

这是一篇文章。

http://support.tigertech.net/mysql-large-inserts

于 2013-04-28T19:16:10.203 回答
-1

启用对 MySQL 数据库服务器的远程访问 默认情况下,出于安全原因,对 MySQL 数据库服务器的远程访问是禁用的。

用于 Windows 的 Heidisql 或用于 lunix 的 Datagrip。

例如使用 Heidisql:

  1. 使用 Heidi SQL 远程连接
  2. 打开海蒂 SQL。
  3. 单击新建。
  4. 命名连接。按回车键。
  5. 输入您的连接设置。设置应如下所示。网络类型:MySQL (TCP/IP)。...
  6. 单击打开。现在您将看到服务器上的数据库和表。
于 2020-01-17T13:27:34.340 回答