首页 > 解决方案 > 我的口才有什么解决办法吗?耗时太长

问题描述

我想从这个指纹表中获取第一个和最新的数据,但是因为该表有超过 100k 条记录,所以时间太长了。有什么解决办法吗?之前谢谢

这是我的代码:

$checkInOut = Fingerprint::where('USERID', 317)->where('CHECKTIME', '>=', $startDate)->where('CHECKTIME', '<=', $dayAfterStartDate)->get();
$checkIn = $checkInOut->first();
$checkOut = $checkInOut->last();`

标签: phpmysqllaraveleloquent

解决方案


覆盖索引USERIDCHECKTIME列将加快数据检索。

CREATE INDEX idx_fingerprint ON Fingerprint(userid, checktime);

推荐阅读