具有多个聚合函数的 SqLite 查询速度很慢 - 需要帮助来优化查询

SqLite query with multiple aggregation functions are slow - need help to optimize the query

我需要帮助优化此 sqlite 查询(来自 php 的查询 运行):

select max(aid) as aid, max(mid) as mid ,max(tid) as tid,
       max(m.id) as m_mid, max(t.id) as m_tid, max(a.id) as m_aid
from   dview, T_DATA t, M_DATA m, A_DATA a

table 名称前缀(例如 a.id)未访问的字段来自 dview,其他来自指定的 tables。

运行 在 sqlite 中,每个 table 中有数百条记录需要超过一分钟。

我知道索引不会修复,因为只有在执行单个聚合时,sqlite 才会处理它们。我能做什么?

您的 FROM 子句:

from dview, T_DATA t, M_DATA m, A_DATA a

创建 4 个数据集的所有行组合的笛卡尔积,并生成最终完成聚合的巨大数据集。

实际上,您的代码等同于:

SELECT MAX(aid) AS aid, MAX(mid) AS mid, MAX(tid) AS tid,
       (SELECT MAX(id) FROM M_DATA) AS m_mid, 
       (SELECT MAX(id) FROM T_DATA) AS m_tid, 
       (SELECT MAX(id) FROM A_DATA) AS m_aid
FROM dview;

哪个应该表现得更好。