mysql - laravel 的性能差异只是 get 与 select 并 get

标签 mysql laravel-5 eloquent

我有一个项目(Laravel 5.4),我需要尽可能地提高性能。 所以我想知道两者之间的性能差异是什么:

$model->get()

get 方法接受所有变量('created_at'、'updated_at' 等),因此选择应该更快。

$model->select('many variables to select')->get();

select 方法是一个额外的查询,因此需要更多时间,所以也许 get 更快?

我想知道 select 和 get 是否在所有情况下都更好,或者是否有任何时候只使用 get 更好?

最佳答案

Model::get()Model::select(['f1', 'f2'])->get() 之间的区别仅在于查询

// Model::get()
SELECT * FROM table

// Model::select(['f1', 'f2'])->get()
SELECT f1, f2 FROM table

两者都运行数据库查询一次,并为您准备模型实例的集合。 select 只需构造 eloquent 即可仅选择您需要的字段。性能提升几乎可以忽略不计,甚至可能更糟。在这里阅读:Is it bad for performance to select all columns?

关于mysql - laravel 的性能差异只是 get 与 select 并 get,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49349763/

相关文章:

laravel-5 - 删除 Eloquent 记录之间的关系

php - Laravel View 链接和 web.php 路由搞砸了

php - 自定义 Laravel 关系?

php - 通过预加载从 Eloquent 获取原始 SQL 查询

laravel - 数据正在插入数据库但显示错误

php - Mysql Query Group By Display 使用PHP

mysql - 在 Plesk 12.5.30 上将 mariadb 替换为 mysql

email - 在 Laravel 5.5 中使用 Mailable 而不是 MailMessage 来发送密码重置电子邮件

MySql - 创建 View 以从多个表中读取

mysql - 错误代码 : 1055. SELECT 列表的表达式 #2 不在 GROUP BY 中