V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
JarvisRay
V2EX  ›  MySQL

关于 left join 多张表后, order by 效率陡然下降,如何优化??

  •  
  •   JarvisRay · 2020-08-25 10:53:28 +08:00 · 2091 次点击
    这是一个创建于 1583 天前的主题,其中的信息可能已经有所发展或是发生改变。

    已经很多次碰到这种情况了,一直得不到很好的解决方案,写个帖子问问。

    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 。后期业务数据会逐步变多,我想到时候肯定就特慢了。 不知道有没有什么好的解决方案?

    5 条回复    2020-09-06 18:32:09 +08:00
    des
        1
    des  
       2020-08-25 10:54:53 +08:00
    先上个 explain 吧
    weirdo
        2
    weirdo  
       2020-08-25 10:58:18 +08:00
    ....你这没有 left join 啊。。
    JarvisRay
        3
    JarvisRay  
    OP
       2020-08-25 11:01:21 +08:00
    @weirdo 不好意思。。。。。。。。我重新发帖,擦,语句搞错了
    zshneedmoney
        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 = 别名
    zhz1237ok
        5
    zhz1237ok  
       2020-09-06 18:32:09 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   993 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:58 · PVG 04:58 · LAX 12:58 · JFK 15:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.