优化SQLite select语句以更快地运行

时间:2015-04-01 12:31:31

标签: sql select sqlite

这个我想要优化的查询,在PepTargetEntity和TargetMatchEntity中大约需要大约1.7百万行的数据库上运行大约需要30秒左右,而客户表和SearchEntity表中只有数千行。我希望这样一个简单的语句可以花费几毫秒来完成。

有索引:

  • 客户(SearchId)
  • PepTargetEntity(客户ID)
  • TargetMatchEntity(客户ID)

如果有人有任何想法,我将不胜感激,提前致谢。

SELECT  CustomerId, Rank, PepId, TargetId, FalsePositive   
FROM (SELECT  T.CustomerId, T.Rank, T.Id AS PepId, NULL AS TargetId, T.FalsePositive, C.Surname, C.Firstname FROM PepTargetEntity T      
INNER JOIN Customer C ON T.CustomerId= C.Id         
WHERE c.SearchId = 3265 OR 3270 = 0

UNION

SELECT  T.CustomerId, T.Rank, Null AS PepId, T.Id AS TargetId, T.FalsePositive, C.Surname, C.Firstname 
FROM TargetmATCHEntity T
INNER JOIN Customer C ON T.CustomerId= C.Id  
WHERE c.SearchId = 3265 OR 3270 = 0)     
ORDER BY Surname ASC,FirstName ASC,Rank DESC   
LIMIT 50   
OFFSET 0

0 个答案:

没有答案