我正在使用laravel,我需要检索表格的最后一行。我正在使用下面的代码,但显然它正在获取整个表,然后循环到最后一个元素。如果表格很大,这将成为一个问题。
$result = Table::orderBy('created_at', 'desc')->first();
是否有更好,更有效的方法来获取最后一行:Eloquent或SQL查询。
由于
答案 0 :(得分:2)
您当前的Laravel查询是查找数据库最新行的一种方法。正如@vladatr所提到的,它对应于以下原始MySQL查询:
SELECT * FROM yourTable ORDER BY created_at DESC LIMIT 1
要回答您的问题,在MySQL级别加快此查询的一种方法是在created_at
列上添加索引。如果优化程序使用此索引,则应加快查找最新记录所需的排序操作。