php - Laravel 迁移/数据库 :seed super slow

标签 php mysql laravel database-connection

我最近从旧的 Windows 计算机升级到了 gen。 4 I7 Ubuntu 15.04

像梦一样运行,嗯...除了任何涉及数据库的 Laravel artisan 命令需要一百万年才能完成,而我的旧计算机在几秒钟内执行任何这些命令。

主要区别在于,我将 MySQL 作为本地服务运行,而不是 XAMPP。

此外,在我的旧计算机上,我可以看到迁移在屏幕上的显示速度缓慢,因为它们似乎正在被处理,而现在,它需要大约 2 到 5 分钟,完成后,整个迁移列表会立即显示。 这可能表明某处存在某种瓶颈。

在互联网的某个地方,有人说使用 '127.0.0.1' 而不是 'localhost' 因为DSN 分辨率。没解决。

为了确保这不是我遇到的问题

    $time = microtime(true);

    //also with host=127.0.0.1
    new PDO("mysql:host=localhost;dbname=some_db", "username", "password");

    //some simple queries here...

    //yielded similar marginal times
    echo microtime(true) - $time;

~半拍


编辑

我从框架中收集了每个查询的运行时间,我有 LOTS 的迁移,分析数据我发现没有什么特别慢的(比如运行一分钟的查询)。

Here's a link with the data .实际询问被省略了,有利于我的雇主。

虽然有许多查询运行一秒或更长时间,但最慢的 number 221 需要高达 3.5 秒。

我有大约一百次迁移(我知道),但问题是,如果每次迁移需要一秒钟,我会等待大约一分半钟才能迁移,但通常需要 4 到 5 分钟。

按照 Oliverpool 的建议,我通过终端在 mysql 上重放查询进行了一些分析,但是我从来不需要等待超过一秒,平均查询需要大约一秒。

这是最慢查询的分析图片(迁移时间为 3.5 秒,图片中不到一秒)

enter image description here

也许这指向连接?顺便说一下,运行迁移后慢查询日志为空

另外,我现在使用的是 laravel 5,行为是一样的。我不知道如何解决连接问题,所以我想一些谷歌搜索是为了,欢迎任何建议。

提前致谢

最佳答案

在这种情况下,我认为缓冲池大小增量是必需的。设置以下内容:

[mysqld]
innodb_io_capacity = 2000
innodb_read_io_threads = 64
innodb_thread_concurrency = 0
innodb_write_io_threads = 64

关于php - Laravel 迁移/数据库 :seed super slow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31706146/

相关文章:

php - 基本的 ssl 和 php

PHP PDO - MySQL 查询在两台服务器上返回不同的结果

MySQL 使用唯一的 CHAR 作为主键

php - 在 Laravel 中将用户播种到数据库时出现问题

php - socket_sendto() : unable to write to socket [1]: Operation not permitted while using papertrail logging

php - 分配中的 "Object of class ... could not be converted to string"

java - 如何从Android发送数据到Mysql

中文字符的PHP urlencode

mysql - 多级Combox-MySQL查询

laravel - 测试 Laravel 时无法连接到 sqlite