2014-04-25 55 views
0

我有一个查询有两个连接(连接三个表),运行速度相当快(通常小于1ms)。如果我根据三个表中的任何一个的索引列对结果进行排序,它仍然在不到1 ms的时间内运行。但是,当我使用两列(来自两个不同表格)进行排序组合时,运行时间约为240ms。SQLite ORDER BY性能问题

我是否需要类似于不同表格的列的组合索引?我认为这是不可能的。我是否必须使用索引视图来实现类似的目标?或者,我的设计有什么问题吗?

我使用SQLite的,而这也正是我的查询看起来像:

SELECT image.title, 
     project.title, 
     video.title 
FROM image 
JOIN video ON image.video_id=video.id 
JOIN project ON project.id=video.project_id 
ORDER BY image.video_id, 
     project.title LIMIT 5000; 

回答

0

这是不可能使用索引来加快从两个不同的表按列进行排序。

+0

我这么认为,我提到了这一点。但是我应该怎么做呢?我不认为240ms是我应该生活的东西。 – Mohsen