【发布时间】:2022-10-02 18:52:07
【问题描述】:
我有一个有 27 列的表,包含超过 150k 行。
当我试图获取查询的计数时,选择 Population 是 900 行,并且收件人表包含超过 150k 行。
所以我必须为所有 900 行重复所有 150k。
$pops=Population::all();
foreach ($pops as $pop){
$pop[\"count\"]=
Recipient::where(\'population_id\',$pop->id)
->whereIn(\"recipients.employment_condition\",[0,1,3])
->where(\"recipients.has_car\",\"!=\",0)
->where(\"recipients.has_land\",\"!=\",0)
->count();
}
这就是让服务器等待大约 45 秒并给我一个内部服务器错误的原因 - 如何优化这样的东西?
笔记:我已经将 4 个 Recipient 列作为没有好的经验的索引!
-
请附上表格和索引定义
-
并提供生成的 SQL。