Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL控制台导入大型SQL文件速度慢_Mysql_Sql_Console_Wamp - Fatal编程技术网

MySQL控制台导入大型SQL文件速度慢

MySQL控制台导入大型SQL文件速度慢,mysql,sql,console,wamp,Mysql,Sql,Console,Wamp,我通过MySQL控制台导入SQL的速度相当慢,而且,由于我们的SQL文件每天都在增加,我想知道是否有其他方法可以更快地导入SQL文件 不能选择更改为Oracle或其他系统,配置必须保持不变 当前SQL文件为:1.5 GB。 我正在使用Apache2.2.14、PHP5.2.11和MySQL 5.1.41 也许问题就在这里,导入是通过一个简单的方法完成的: mysql -u username -p dbname < sqlfilename.sql mysql-u username-p db

我通过MySQL控制台导入SQL的速度相当慢,而且,由于我们的SQL文件每天都在增加,我想知道是否有其他方法可以更快地导入SQL文件

不能选择更改为Oracle或其他系统,配置必须保持不变

当前SQL文件为:1.5 GB。 我正在使用Apache2.2.14、PHP5.2.11和MySQL 5.1.41

也许问题就在这里,导入是通过一个简单的方法完成的:

mysql -u username -p dbname < sqlfilename.sql
mysql-u username-p dbname

有什么建议吗?

我不确定这是否能解决您的问题,因为我不确定瓶颈在哪里。。。然而,作为MySQL管理控制台的替代品,这个免费工具给我留下了深刻的印象。它有很好的导入工具,通常比标准的MySQL管理控制台好几英里。

在导入过程中启用索引会使服务器慢到爬行状态<代码>更改表
表名
禁用键
;并在导入之前和之后使用
。启用键
,将提高导入速度,但重新创建索引需要一些时间,因此这可能不会带来很大的速度提升

此外,也许使用myisam表(与具有引用完整性选项的innodb相比)通常会提供更好的性能,因为不涉及引用完整性开销

就我个人而言,我不使用mysql控制台的import语句,而是使用
mysql-uUSER-pPASS DBNAME
导入sql文件,这对我来说很好

希望有帮助。

试试这些

这可能是一个自动提交问题,关闭它,然后看看会发生什么

SET autocommit=0 ; source <your dump file> ; COMMIT ;
设置自动提交=0;来源;犯罪

关闭自动提交是中提供的一系列建议中的第一个,以加快MySQL的恢复操作

您不必在恢复时手动关闭自动提交,而是可以将MySQL数据转储到包含所有必要语句的SQL文件中

mysqldump的命令行参数是
--无自动提交
。您还可以考虑添加<代码> -opt<代码>,它设置了其他参数的组合以加快恢复操作。 下面是我使用的完整mysqldump命令行的示例,其中包含
--no autocommit
--opt

mysqldump -hlocalhost -uMyUser -p'MyPassword' --no-autocommit --opt --default-character-set=utf8 --quote-names  MyDbName  >  dump.sql

有关这些参数的详细信息,请参见

您使用的是mysqlimport还是LOAD DATA Inflie?如果我的回答正确,这是必须放在Sql中的内容,这是不可能的,因为您无法在任何编辑器中更改1.4 Gb的Sql文件,并且该文件来自外部源。这可能会帮助某些人:首先重新启动计算机,然后禁用你的防病毒/防火墙/带宽跟踪器+任何其他你不需要运行的程序。但禁用这两件事,我增加速度像6x.任何其他人都有经验与蟾蜍在这个问题上巨大的数据文件?考虑使用MySqLimPART命令。它将采用包含某些选项卡或其他分离格式数据的平面文件,并将其直接导入表中,速度比执行sql查询快。如果您不熟悉mysqlimport命令,请参阅以获取有关该命令的信息。默认情况下,导出表时,MySQL工作台通过
DISABLE key;…;为每个表围绕
INSERT
语句。。。;启用按键