为了账号安全,请及时绑定邮箱和手机立即绑定

使用远程 MySQL 时 Eloquent 非常慢

使用远程 MySQL 时 Eloquent 非常慢

PHP
慕斯709654 2023-03-11 15:35:41
我最近不得不将我的数据库传输到远程服务器。我使用 Postman 连接到在本地主机上运行的 PHP 以发出相同的请求。这是结果,本地主机和 Eloquent 上的 MySQL:~30 毫秒远程服务器上的 MySQL 和 Eloquent:~2.7 秒本地主机和 PHP 上的 MySQL:~10 毫秒远程服务器和 PHP 上的 MySQL:~850 毫秒从我的电脑到远程服务器 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);为了雄辩,我只是使用Online::find(1).我还没有尝试在服务器上运行 Eloquent,但这正常吗?如果我要在不同的服务器上使用远程 mysql 数据库,我应该避免使用 eloquent 吗?编辑:我正在更改一些值,当我从雄辩的配置中删除字符集和排序规则值时,响应时间提高到 1.7s,快了 1s。'charset' => 'utf8mb4','collation' => 'utf8mb4_unicode_ci',
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

Eloquent VS MySQLi 本机 RAW 执行

Eloquent ORM比它慢,Native MySQLi Execution因为它有很多内置功能。但是Eloquent 会让你的代码简洁明了。并提供更好的security

本地主机VS远程主机

我们讲的时候local server,性能就看你的了local environment但是当你使用时Remote Host,性能会因为以下原因而改变。

  1. 网络连接。

  2. 您的远程主机的位置。

  3. 远程主机的性能。

最佳实践/架构

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

  1. 使用数据库复制(跨区域)。

  2. 索引。

  3. 使用缓存。


查看完整回答
反对 回复 2023-03-11
  • 1 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号