V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
BrilliantGinger
V2EX  ›  问与答

有没的 sql 优化大佬 小弟来跪了...

  •  
  •   BrilliantGinger · Mar 17, 2021 · 2720 views
    This topic created in 1868 days ago, the information mentioned may be changed or developed.

    公司报表要搞 sql 优化,但是有很多函数 函数里面有很多子查询,导致 sql 特别慢,小的学术浅薄,特来救助...嘤嘤嘤

    27 replies    2021-03-18 14:13:07 +08:00
    BrilliantGinger
        1
    BrilliantGinger  
    OP
       Mar 17, 2021
    dsada
    fareware
        2
    fareware  
       Mar 17, 2021
    举个例子
    MeteorCat
        3
    MeteorCat  
       Mar 17, 2021 via Android
    直接加钱,没什么是加钱解决不了的,有的话那就是钱加的不够
    MeteorCat
        4
    MeteorCat  
       Mar 17, 2021 via Android
    @MeteorCat 以前年轻也是和楼主一样烦恼,自从换了公司之后遇到这种问题,都是直接加配置处理,才发现真的加钱世界触手可及
    shakoon
        5
    shakoon  
       Mar 17, 2021
    看执行计划,加索引
    fiypig
        6
    fiypig  
       Mar 17, 2021 via iPhone
    explain 分析下
    redtea
        7
    redtea  
       Mar 17, 2021
    为什么一定要写成一条 SQL 执行,不能取出来在程序里处理后再输出吗?
    levelworm
        8
    levelworm  
       Mar 17, 2021 via Android
    大哥你好歹给个例子啊。。。
    proxychains
        9
    proxychains  
       Mar 17, 2021 via Android
    这是什么电影.jpg
    BrilliantGinger
        10
    BrilliantGinger  
    OP
       Mar 17, 2021
    @MeteorCat 哈哈 你可真有趣 直接加配置... 问题公司用的 mysql 只能靠我们咯
    BrilliantGinger
        11
    BrilliantGinger  
    OP
       Mar 17, 2021
    @levelworm 抱歉 老哥 第一次发主题...
    BrilliantGinger
        12
    BrilliantGinger  
    OP
       Mar 17, 2021
    @redtea 都是以前别人写好的...主要是用了很多函数 函数里面子查询 你想想假如我一个表有 4000 条数据 子查询表有 100w 条数据 就会对 100w 数据的表进行 4000 次访问 多可怕..我不知道怎么处理了
    BrilliantGinger
        13
    BrilliantGinger  
    OP
       Mar 17, 2021
    @shakoon 试过了
    BrilliantGinger
        14
    BrilliantGinger  
    OP
       Mar 17, 2021
    @fareware 都是以前别人写好的...主要是用了很多函数 函数里面子查询 你想想假如我一个表有 4000 条数据 子查询表有 100w 条数据 就会对 100w 数据的表进行 4000 次访问 多可怕..我不知道怎么处理了 第一次发帖子 不知道怎么发图片 嘿嘿
    romisanic
        15
    romisanic  
       Mar 17, 2021
    data
    sql
    levelworm
        16
    levelworm  
       Mar 18, 2021 via Android
    我觉得可能还是得从业务出发重构比较好。他这点代码是做啥的搞清楚应该就好些了。
    xupefei
        17
    xupefei  
       Mar 18, 2021 via iPhone
    上 Spark SQL 。
    zhiguang
        18
    zhiguang  
       Mar 18, 2021
    用阿里的 mysql,十亿级别的数据都能查.....
    BrilliantGinger
        19
    BrilliantGinger  
    OP
       Mar 18, 2021
    @levelworm 搞业务的人都离职了...
    BrilliantGinger
        20
    BrilliantGinger  
    OP
       Mar 18, 2021
    @romisanic 0 。0
    BrilliantGinger
        21
    BrilliantGinger  
    OP
       Mar 18, 2021
    @xupefei 大数据 ...公司没那实力
    BrilliantGinger
        22
    BrilliantGinger  
    OP
       Mar 18, 2021
    @zhiguang 完全不是一种公司...
    jowenz
        23
    jowenz  
       Mar 18, 2021
    @BrilliantGinger 你说的这个函数,如果函数里面要去其他表取数,应该类似标量子查询吧,数据量少没问题, 子查询(函数)如何走索引在 100W 里面查也不会很慢的。量多还是改写 SQL 吧。
    BrilliantGinger
        24
    BrilliantGinger  
    OP
       Mar 18, 2021
    知道了 老哥,现在公司有个老人,用视图的方式去优化 sql,但是我感觉用视图做优化 并不是真正的优化,而我们现在写的 sql 的复杂度,这 sql 已经无法优化了,牵扯到表太多了
    BrilliantGinger
        25
    BrilliantGinger  
    OP
       Mar 18, 2021
    @jowenz 知道了 老哥,现在公司有个老人,用视图的方式去优化 sql,但是我感觉用视图做优化 并不是真正的优化,而我们现在写的 sql 的复杂度,这 sql 已经无法优化了,牵扯到表太多了
    jowenz
        26
    jowenz  
       Mar 18, 2021
    @BrilliantGinger 视图没有优化吧,就是封装起来,少写代码,看起来整洁一些,有时候使用视图还会更慢
    BrilliantGinger
        27
    BrilliantGinger  
    OP
       Mar 18, 2021
    @jowenz 速度倒是快了不少...
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   973 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 20:49 · PVG 04:49 · LAX 13:49 · JFK 16:49
    ♥ Do have faith in what you're doing.