php - 有什么办法可以解决我的 Eloquent 吗?时间太长

标签 php mysql laravel eloquent

我想从这个fingerprint table中获取第一个和最新的数据, 但它花费的时间太长,因为该表有超过 100k 条记录。有什么解决办法吗?先谢谢

这是我的代码:

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

最佳答案

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

CREATE INDEX idx_fingerprint ON Fingerprint(userid, checktime);

关于php - 有什么办法可以解决我的 Eloquent 吗?时间太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59450207/

相关文章:

mysql - 在 MySql 触发器中运行系统调用

laravel - Yajra DataTable Laravel 中的 Foreach

javascript - 在 vuejs 和 laravel 中循环显示特定的 div `@click`

javascript - node.js 和 mysql 如果数据库中有 1,我如何获得 2?

php - 如何从现有数据库更新 Symfony 实体?

php - 在模型 : Laravel 中运行原始 sql

php - 在使用 CakePHP 发送的电子邮件中显示完整的 URL

php - 准备好的语句和二阶 SQL 注入(inject)

php - 将 HTML 文件读入电子邮件

php - mysqli insert 不工作,没有错误信息,连接成功