繁体   English   中英

Eloquent 使用远程时非常慢 MySQL

[英]Eloquent Very slow when using remote MySQL

我最近不得不将我的数据库转移到远程服务器。

我使用 Postman 连接到在 localhost 上运行的 PHP 以发出相同的请求。 这是结果,

Localhost 和 Eloquent 上的 MySQL:~30ms

远程服务器上的 MySQL 和 Eloquent:~2.7 秒

Localhost 和 PHP 上的 MySQL:~10ms

远程服务器上的 MySQL 和 PHP:~850ms

从我的计算机到远程服务器 ip 的平均 ping 时间约为 150 毫秒。

这是我使用的 PHP 脚本,

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "select * from `online` where `online`.`id` = 1 limit 1";
$result = $conn->query($sql);

var_dump($result);

对于 eloquent,我只使用了Online::find(1)

我还没有尝试在服务器上运行 eloquent,但这正常吗? 如果我要在不同的服务器上使用远程 mysql 数据库,我应该避免使用 eloquent 吗?

编辑:

我正在更改一些值,当我从 eloquent 配置中删除字符集和排序规则值时,响应时间提高到 1.7 秒,快了 1 秒。

'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',

Eloquent VS MySQLi 原生 RAW 执行

Eloquent ORMNative MySQLi Execution要慢,因为它有很多内置功能。 但是eloquent 将使您的代码简洁明了。 并提供更好的security

本地主机VS远程主机

当我们谈论local server时,性能取决于您的local environment 但是当您使用Remote Host时,性能会因为以下原因而改变。

  1. 网络连通性。
  2. 远程主机的位置。
  3. 远程主机的性能。

最佳实践/架构

将应用程序部署到生产环境时,通常我们不会将数据库和应用程序保存在同一台服务器上。 在生产中,专家会做以下事情来提高数据库性能。

  1. 使用数据库复制(跨区域)。
  2. 索引。
  3. 使用缓存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM