已经很多次碰到这种情况了,一直得不到很好的解决方案,写个帖子问问。
SELECT DISTINCT p.id, p.channel_id, o.channel_name, d.drug_manufacturer, p.patient_name, p.patient_gender, p.patient_age, p.patient_tel, p.diagnostic_name AS diagnosis, p.doctor_name, p.review_doctor_name AS pharmacist_name, p.pharmacist_name AS config_pharmacist_name, p.STATUS, p.review_time, p.rp_id, p.rp_url, p.refuce_reason, p.total_price, p.add_time FROM prescription_in_channel p, org_channel o, drug_in_channel d WHERE p.id = d.pre_id AND o.id = p.channel_id ORDER BY p.add_time DESC limit 1,10
上述语句中,没加 order by 目前是 0.2s 左右的时间,加了之后,变为 1.5s 。后期业务数据会逐步变多,我想到时候肯定就特慢了。 不知道有没有什么好的解决方案?
1
des 2020-08-25 10:54:53 +08:00
先上个 explain 吧
|
2
weirdo 2020-08-25 10:58:18 +08:00
....你这没有 left join 啊。。
|
4
zshneedmoney 2020-08-25 11:04:35 +08:00
join (select add_time from prescription_in_channel ordrr by add_time DESC ) 别名 on p.add_time = 别名
|
5
zhz1237ok 2020-09-06 18:32:09 +08:00
|