我有一个SQL文件,其中包含两个表,总共约60万行.昨天,我试图将该文件导入Fedora 16上的MySQL数据库,导入该文件花了2个多小时.在我的Windows PC上花了7分钟.我的Linux和Windows机器有完全相同的硬件.我的几个朋友也try 过,他们也有类似的经历.

我们使用的命令是:mysql -u root database_name < sql_file.sql.

为什么速度有这么大的差异?

推荐答案

我敢打赌Fedora 16尊重事务/同步语义,Windows则不然.如果你算一下,两小时内60万次更新等于每分钟5000次.这和圆盘的旋转速度是相同的数量级.

您可以try 将SET autocommit=0;添加到导入文件的开头,将COMMIT;添加到结尾.更多信息请参见this page.

Linux相关问答推荐

将UTC字符串日期时间转换为毫秒UTC时间戳

为什么我的Linuxshell 程序有时找不到它刚刚创建的文件?

如何在 shell 脚本中自定义 SFTP 详细输出

为什么waitpid(2)可以指定非子进程?

重命名具有相同前缀的文件对中最旧的文件

如何让 Flutter 用鼠标拖动而不是滚轮滚动? (Linux)

使用 bash 在包含模式的 java 文件中查找行,然后替换该行的另一部分

使用 Bash 获取特定文件的 mtime?

如何比较两个压缩包的内容

无法创建Java虚拟机

我如何从 Ubuntu 上的源代码自己构建 python?

通过 VM 的 Centos - 镜像列表中没有 URL

Pthread mutex互斥断言错误

谁决定任何数据类型或 struct 的大小(取决于 32 位或 64 位)?

如何让 GNU 屏幕读取 .bash_profile/.bash_rc 更改?

如何查看安装的 pip 包大小?

rm 没有释放磁盘空间

如何在 Linux 中使用单行命令获取 Java 版本

cat、grep 和 cut - 翻译成 python

如何制作和应用SVN补丁?