我有一些类似于以下的 SQL,它连接四个表,然后按第一个的“状态”列对结果进行排序:
SELECT *
FROM a, b, c, d
WHERE b.aid=a.id AND c.id=a.cid AND a.did=d.id AND a.did='XXX'
ORDER BY a.status
有用。但是,它很慢。我发现这是因为 ORDER BY 子句和表“a”上没有任何索引。
所有四个表都在“id”列上设置了 PRIMARY KEY。
所以,我知道我需要向包含“状态”列的表 a 添加一个索引,但它还需要包含什么?“bid”、“cid”和“did”也应该在里面吗?
我试图从一般的 SQL 意义上问这个问题,但如果它很重要,那么目标是与 Gears 一起使用的 SQLite。
提前致谢,
杰克(菜鸟)