我需要获得符合特定条件的记录的文件名,但我意识到执行时查询非常慢。我增加了指数,但还是很慢,怎样才能提高性能呢?我正在使用DB2。帮帮忙,谢谢。
表(文件)(数据量-约100000)
索引(类别,FILE_ID)
表(记录)(数据量-约50000000)
索引(CREATE_DATE,TYPE,FILE_ID)
SELECT NAME
FROM FILE
WHERE CATEGORY = ? AND
FILE_ID IN (SELECT FILE_ID FROM RECORD WHERE CREATE_DATE = ? AND TYPE = ? )发布于 2013-04-19 03:18:02
加入桌子吧。
select f.name
from f join record r on f.file_id = r.file_id
where f.category = ?发布于 2013-04-19 03:18:53
尝试使用INNER JOIN语法:
select file.name
from file inner join record using(file_id)
where file.category_id=? and record.create_date=? and record.type=?对记录表使用索引(file_id、create_date、type)。
发布于 2013-04-19 03:43:08
这不会给你重复的结果
SELECT NAME
FROM FILE F
JOIN (
SELECT FILE_ID FROM RECORD WHERE CREATE_DATE = ? AND TYPE = ?
GROUP BY FILE_ID
) Q ON F.FILE_ID = Q.FILE_ID
WHERE CATEGORY = ?https://stackoverflow.com/questions/16096558
复制相似问题