在运行Php 5.4的Linux MySQL 5.6服务器中,以下命令需要2-3秒
exec("mysql --host=$db_host --user=$db_user --password=$db_password $db_name < $sql_file");
Run Code Online (Sandbox Code Playgroud)
在具有类似配置的窗口上,需要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我尝试禁用写缓存缓冲区刷新,性能现在很好.
我没有必要在我测试的其他机器上执行此操作.这是否表明磁盘是如何设置的?
Windows 创建文件的速度较慢。40 个 InnoDB 表涉及 40 或 80 个文件创建。由于它们是小型 InnoDB 表,您最好innodb_file_per_table=OFF在执行之前进行设置CREATEs,这样只需要创建 40 个文件。
MySQL 中的良好实践是创建表一次,而不是频繁创建/删除表。如果您的应用程序设计为执行大量 CREATE 操作,那么我们应该重点关注这一点。(请注意,即使在 Linux 上,表创建时间也很重要。)
如果这些是临时表...5.7 将进行重大更改,以提高该领域的性能(在任一操作系统上)。5.7 即将正式发布。
(在这种情况下,RAM 大小无关紧要。)
| 归档时间: |
|
| 查看次数: |
8365 次 |
| 最近记录: |