exec("mysql --host=$db_host --user=$db_user --password=$db_password $db_name < $sql_file");
在类似配置的Windows上,这需要10-15秒钟。 Windows机器具有更多的RAM(16GB)和类似的硬盘。 我安装了MySQL 5.6,并没有进行任何配置更改。 这是在Windows Server 2012上运行的。
我可以更改哪些配置来解决这个问题?
数据库文件创建了大约40个InnoDB表,其中非常少量插入。
编辑:这是我正在运行的文件:
https://www.dropbox.com/s/uguzgbbnyghok0o/database_14.4.sql?dl=0
更新:在Windows 8和7上,它只需要3秒。但在Windows Server 2012上则需要15秒以上。我已禁用System Center 2012,但没有任何改善。更新2:
我几乎杀死了除mysql和IIS之外的所有服务,但它仍然运行缓慢。是Windows Server 2012中有某些原因导致速度变慢吗?
更新3:
我尝试禁用写缓存缓冲区刷新,现在性能非常好。在我测试的其他机器上不需要这样做。这是否表明磁盘设置存在瓶颈?
innodb_file_per_table
。尽管创建40个文件需要10-15秒听起来有点多。 - Bjorn Munch