我有兩個表: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秒。有什麼辦法可以讓它更快。
我有兩個表: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秒。有什麼辦法可以讓它更快。
在t1.action,t1.id
上設置一個索引,在t2.f_id
上設置另一個索引。
一定要對table1.id
,table1.action
和table2.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
第一步將在0123'上加上id
和action
的索引。
在查詢中引入distinct
也會減慢速度。