Mysql-Laravel:在不获取所有数据的情况下获取表的最后一行
我正在使用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
$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的查询,因为它知道您只需要一个元素。