Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql-Laravel:在不获取所有数据的情况下获取表的最后一行_Mysql_Laravel_Eloquent - Fatal编程技术网

Mysql-Laravel:在不获取所有数据的情况下获取表的最后一行

Mysql-Laravel:在不获取所有数据的情况下获取表的最后一行,mysql,laravel,eloquent,Mysql,Laravel,Eloquent,我正在使用laravel,我需要检索表的最后一行。我在使用下面的代码,但显然它得到了整个表,然后循环到最后一个元素。如果桌子很大,这将成为一个问题 $result = Table::orderBy('created_at', 'desc')->first(); 是否有更好、更有效的方法获取最后一行:雄辩或sql查询 谢谢您当前的Laravel查询是查找数据库最近一行的一种方法。如@vladatr所述,它对应于以下原始MySQL查询: SELECT * FROM yourTable ORD

我正在使用laravel,我需要检索表的最后一行。我在使用下面的代码,但显然它得到了整个表,然后循环到最后一个元素。如果桌子很大,这将成为一个问题

$result = Table::orderBy('created_at', 'desc')->first();
是否有更好、更有效的方法获取最后一行:雄辩或sql查询


谢谢

您当前的Laravel查询是查找数据库最近一行的一种方法。如@vladatr所述,它对应于以下原始MySQL查询:

SELECT * FROM yourTable ORDER BY created_at DESC LIMIT 1

为了回答您的问题,在MySQL级别加速此查询的一种方法是在列的
created\u上添加索引。如果优化器使用此索引,应该会加快查找最新记录所需的排序操作。

您确定它会循环所有记录吗
first()
将创建一个限制为1的查询,因为它知道您只需要一个元素。