php - 使用 eloquent laravel 优化查询
问题描述
为此,我正在使用 laravel 和 eloquent 我有一个名为 Expense 的模型,它指的是一个或多或少具有这种结构的简单表:
| expenses |
|------------|
| id |
| date |
| amount |
| created_at |
| updated_at |
| deleted_at |
现在我需要获取当年每个月的总费用,所以请执行以下操作:
Expense::select( DB::raw('sum(amount) as sums'),
DB::raw("DATE_FORMAT(created_at,'%M') as months"))
->groupBy('months')
->get();
前面的代码生成以下查询:
select sum(amount) as sums, DATE_FORMAT(created_at,'%M') as months from `expenses` where `expenses`.`deleted_at` is null group by `months`
这可行,但我的问题是我的表中有很多记录,并且查询执行完整扫描,我该如何改进我的代码并优化我的查询?
解决方案
推荐阅读
- c++ - CPLEX - Adding Lazy Constraints with variables of different type lead to InvalidCutException
- go - 访问切片 Golang 模板中的结构中的特定字段
- ios - 为什么这个警报不让我的视图控制器释放?
- mysql - MySQL 使用触发器将数据排序到其他表 - 已解决
- python - 使用标题标签在 Bokeh 中创建子图
- r - 在 r 中选择经度和纬度坐标的子集
- mysql - 将 UTC 设置为默认日期时区
- python - 使用 python pandas 在循环中加入股票 DataFrames 的内存问题
- sockets - inet_ntop 的冲突类型
- javascript - 如何使用这些标记的联合来实现 zipPad?