Php 使用远程MySQL时非常慢

Php 使用远程MySQL时非常慢,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我最近不得不将我的数据库转移到远程服务器 我使用Postman连接到在localhost上运行的PHP,以发出相同的请求。以下是结果 本地主机上的MySQL且雄辩:~30ms MySQL在远程服务器上运行,且功能强大:~2.7秒 本地主机和PHP上的MySQL:~10ms 远程服务器上的MySQL和PHP:~850ms 从我的计算机到远程服务器ip的平均ping约为150ms 这是我使用的PHP脚本 // Create connection $conn = new mysqli($servern

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

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

本地主机上的MySQL且雄辩:~30ms

MySQL在远程服务器上运行,且功能强大:~2.7秒

本地主机和PHP上的MySQL:~10ms

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

从我的计算机到远程服务器ip的平均ping约为150ms

这是我使用的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);
对于雄辩,我只是使用了
Online::find(1)

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

编辑:

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

'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
雄辩VS MySQLi原生原始执行

雄辩的ORM
原生MySQLi执行速度慢,因为它有很多内置功能雄辩将使您的代码简洁易懂。并提供更好的
安全性

本地主机VS远程主机

当我们谈论
本地服务器时
,性能取决于您的
本地环境
但是当您使用
远程主机
时,由于以下原因,性能将发生变化

  • 网络连通性
  • 远程主机的位置
  • 远程主机的性能
  • 最佳实践/架构

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

  • 使用数据库复制(跨区域)
  • 索引
  • 使用缓存
  • 雄辩VS MySQLi原生原始执行

    雄辩的ORM
    原生MySQLi执行速度慢,因为它有很多内置功能雄辩将使您的代码简洁易懂。并提供更好的
    安全性

    本地主机VS远程主机

    当我们谈论
    本地服务器时
    ,性能取决于您的
    本地环境
    但是当您使用
    远程主机
    时,由于以下原因,性能将发生变化

  • 网络连通性
  • 远程主机的位置
  • 远程主机的性能
  • 最佳实践/架构

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

  • 使用数据库复制(跨区域)
  • 索引
  • 使用缓存

  • 所以很明显,eloquent会自动变慢,因为它做了很多事情,所以您不必写出sql语句和很多事情来预先格式化结果集。这些都有性能成本,但您可以获得生产力。因此,自然地,没有所有样板代码的精简优化sql语句会快得多。但是写起来要花更长的时间。Laravel让事情变得更简单,但并不总是更快。是的,但从850ms到平均2.7s,似乎是相当多的时间。你能分享你的雄辩代码吗?也许你正在做一些可以优化的事情。你用的是雄辩还是整个拉威尔?用的是雄辩。我使用
    Online::find(1)
    进行测试。您还需要什么其他代码?我添加了一个editSo,显然Elounce会自动变慢,因为它做了很多事情,所以您不必编写sql语句和很多事情来预格式化结果集。这些都有性能成本,但您可以获得生产力。因此,自然地,没有所有样板代码的精简优化sql语句会快得多。但是写起来要花更长的时间。Laravel让事情变得更简单,但并不总是更快。是的,但从850ms到平均2.7s,似乎是相当多的时间。你能分享你的雄辩代码吗?也许你正在做一些可以优化的事情。你用的是雄辩还是整个拉威尔?用的是雄辩。我使用
    Online::find(1)
    进行测试。你还需要什么代码?我已经添加了一个editYes我知道eloquent可能会稍微慢一点,但与纯php相比,eloquent平均能使代码慢3倍吗?是的,我知道eloquent可能会稍微慢一点,但eloquent平均能使代码比纯php慢3倍吗?