我有一个项目(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/