- 论坛徽章:
- 0
|
SQL语句:
select `fc`.`projectsid` AS `projectsid`,`fc`.`description` AS `description`,`fc`.`createdtime` AS `createdtime`,`fc`.`feeperiod` AS `feeperiod`,`fc`.`feestartdate` AS `feestartdate`,`fc`.`feeenddate` AS `feeenddate`,ifnull(`fc`.`feeamount`,0) AS `feeamount`,`fc`.`cheweino` AS `cheweino`,`fc`.`cheweisid` AS `cheweisid`,`p`.`projectname` AS `projectname`,`fi`.`feeitemname` AS `feeitemname`,`fc`.`modifiedtime` AS `modifiedtime`,ifnull(`f`.`cf_1052`,0) AS `fangarea`,ifnull(`f`.`cf_1054`,_utf8'') AS `fangstatus`,ifnull(`f`.`cf_1042`,_utf8'') AS `buildtype`
from (((`ec_feecreates` `fc` join `ec_feeitems` `fi` on((`fc`.`feeitemsid` = `fi`.`feeitemsid`)))
join `ec_fanginfos` `f` on((`fc`.`fanginfosid` = `f`.`fanginfosid`)))
join `ec_projects` `p` on((`fc`.`projectsid` = `p`.`projectsid`)))
where ((`fc`.`feestatus` = _utf8'未收') and (`p`.`deleted` = 0) and (`fi`.`deleted` = 0) and (`f`.`deleted` = 0))
order by projectname,fangstatus
版本:MYSQL 5.6.25
现象:不加order by ,执行速度不到1秒
加了 order by 执行速度 8秒
数据量 4万条,projectname,fangstatus 两个字段均在各自的表上建有单独索引。
采用explain 执行了一下,Using where; Using temporary; Using filesort 39000行,貌似是先生成一个临时表,然后再去排序,造成时间过长
这种情况下该如何优化? |
|