询问一个SQL查询语句的问题,MYSQL的,来看看吧!
我的SQL语句如下 日中三个表数据量分别为 1700 13000 34 这样查询要40秒才会出来结果(我远程连的服务器MYSQL)。 我表示压力很大。请大神给予指示,
SELECT COUNT(adverId) visit, adverId, statId developersName, productsName FROM tb_statistic_adver_visit v, (SELECT chid, uid, cpid FROM tb_statistic_stat) s, (SELECT developersName, productsName, developersId,id FROM tb_developers_service WHERE 1=1 GROUP BY developersId ) d WHERE 1=1 AND s.uid=v.statId AND s.cpid=d.developersId GROUP BY adverId
show create table tb_statistic_adver_visit;show create table tb_statistic_stat;show create table tb_developers_service;
[解决办法]
create index idx_v_statId on tb_statistic_adver_visit(statId);create index idx_s_cpid on tb_statistic_stat(cpid); create index idx_d_developersId on tb_developers_service(developersId);
[解决办法]
SELECT
COUNT(adverId) visit,
adverId,
statId
developersName,
productsName
FROM
tb_statistic_adver_visit v,
tb_statistic_stat s
(SELECT
developersName,
productsName,
developersId,id
FROM
tb_developers_service
WHERE
1=1
GROUP BY
developersId ) d
WHERE
1=1
AND s.uid=v.statId
AND s.cpid=d.developersId
GROUP BY
adverId