2011-01-06 43 views
0

我有兩個表:table1有4lacs(400,000)記錄,其他有100個記錄。Mysql查詢優化

我想下面的查詢:

SELECT DISTINCT t1.id as id 
FROM table1 t1 
JOIN table2 t2 ON t2.f_id = t1.id 
       AND t1.action = 0; 

我使用MyISAM引擎。 t1.id和t2.f_id是相同的和索引的。

此查詢需要30秒。有什麼辦法可以讓它更快。

回答

0

t1.action,t1.id上設置一個索引,在t2.f_id上設置另一個索引。

4

一定要對table1.idtable1.actiontable2.f_id,並假設沒有其它指標住在那些導致性能問題或者表,這應該是接近最優的索引:

SELECT 
    DISTINCT t1.id AS id 
FROM 
    table1 AS t1 
    JOIN table2 AS t2 ON t2.f_id = t1.id 
WHERE 
    t1.action = 0 
0

第一步將在0123'上加上idaction的索引。

在查詢中引入distinct也會減慢速度。