Php 使用远程MySQL时非常慢
我最近不得不将我的数据库转移到远程服务器 我使用Postman连接到在localhost上运行的PHP,以发出相同的请求。以下是结果 本地主机上的MySQL且雄辩:~30ms MySQL在远程服务器上运行,且功能强大:~2.7秒 本地主机和PHP上的MySQL:~10ms 远程服务器上的MySQL和PHP:~850ms 从我的计算机到远程服务器ip的平均ping约为150ms 这是我使用的PHP脚本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
// 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倍吗?