Mysql查询优化
我有两个表:表1有4lac(400000)条记录,其他表有100条记录 我正在尝试以下查询:Mysql查询优化,sql,mysql,query-optimization,Sql,Mysql,Query Optimization,我有两个表:表1有4lac(400000)条记录,其他表有100条记录 我正在尝试以下查询: 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_
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上设置一个索引t1.action,t1.id
上设置一个索引,在t2.f_id上设置另一个索引,确保在表1.id
,表1.action
和表2.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
确保在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
第一步是在table1
上添加一个索引,将id
和action
放在一起
在查询中引入distinct
也会降低查询速度。第一步是在表1
上添加一个索引,该索引同时涵盖id
和action
将distinct
引入查询也会降低查询速度