› 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
GroupF
V2EX  ›  MySQL

大神们,问一个 sql 查询特别慢的问题,前人代码

  •  
  •   GroupF · Dec 17, 2019 · 6465 views
    This topic created in 2481 days ago, the information mentioned may be changed or developed.

    select * from tableA a,tableB b,( select * from tableC ) c 这个 SQL 查询的老慢了 c 表 100 条数据

    竟然花了 50s,我几乎不怎么用这种查找方式,希望获取到点有用信息

    谢谢啦

    20 replies  •  2019-12-21 16:38:41 +08:00
    lihongjie0209
        1
    lihongjie0209  
       Dec 17, 2019
    笛卡尔积?? 三个表??
    jeffh
        2
    jeffh  
       Dec 17, 2019
    关联条件都没有吗,那三个表做笛卡尔积,慢是一定的
    IMCA1024
        3
    IMCA1024  
       Dec 17, 2019   ❤️ 1
    还有这等可怕 SQL
    GroupF
        4
    GroupF  
    OP
       Dec 17, 2019
    每次查询特慢,这点地方用的地方太多了,所以我不想动
    a7217107
        5
    a7217107  
       Dec 17, 2019
    这样查等价 select * from tableA a,tableB b,tableC c,笛卡尔积三张表,当然慢啊
    GroupF
        6
    GroupF  
    OP
       Dec 17, 2019
    好伐好伐,我重写了
    arthas2234
        7
    arthas2234  
       Dec 17, 2019   ❤️ 1
    骚操作一套一套的,还用的地方特别多,不改就等 GG 吧
    看需要使用的地方,汇总一下需要使用哪些字段,在不改变输出的情况下优化 SQL
    airfling
        8
    airfling  
       Dec 17, 2019
    还不如分三次执行
    smilenceX
        9
    smilenceX  
       Dec 17, 2019
    我还特意去试了一下,原来 sql 这么写真的能执行
    Raymon111111
        10
    Raymon111111  
       Dec 17, 2019
    不是特别需要

    真的不要连表

    索引也闹不明白
    yinjy
        11
    yinjy  
       Dec 17, 2019
    到底什么业务逻辑非得这么查表……
    GroupF
        12
    GroupF  
    OP
       Dec 17, 2019
    @arthas2234 我有时候都感觉写了个寂寞
    U7Q5tLAex2FI0o0g
        13
    U7Q5tLAex2FI0o0g  
       Dec 17, 2019
    不如分 3 次查?
    GeminiPro
        14
    GeminiPro  
       Dec 17, 2019
    不能分开么?
    GroupF
        15
    GroupF  
    OP
       Dec 17, 2019
    @littleylv 对,我也和爱用 java 来操作
    weipt
        16
    weipt  
       Dec 17, 2019
    你这样查到的结果有用吗?!
    干了 10 几年开发还有这样的语句,长见识了
    lovelive1024
        17
    lovelive1024  
       Dec 17, 2019
    不慢才有鬼了,这样查询相当于 count(a) * count(b) * count(c) 的记录数,每个表 100 条那也是 100W 条了
    8FollowHeart
        18
    8FollowHeart  
       Dec 17, 2019
    最好改成 join 吧,加下关联条件,再加上索引就完美了
    ackoly
        19
    ackoly  
       Dec 17, 2019 via iPhone
    估计是 Oracle 的,关联条件都写在 where 里
    g26
        20
    g26  
       Dec 21, 2019
    查看 mysql 的版本,你的应该是 5.5 之前的,5.6 有优化


    另外你的 sql 好像不全,建议改成 left join
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2501 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 03:00 · PVG 11:00 · LAX 20:00 · JFK 23:00
    ♥ Do have faith in what you're doing.