V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
glacer
V2EX  ›  程序员

各位 V 友,大家是如何审核要发布上线的接口中的 SQL 语句的呢?

  •  1
     
  •   glacer · 2018-11-25 00:23:02 +08:00 · 2976 次点击
    这是一个创建于 2195 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司应用最近频繁出现慢 SQL 问题,数据库 CPU 跑满 100%那种。由于团队小,很多质量审核方面不完善。一般接口研发接口开发后简单测试都是直接上线,现在线上的 SQL 基本都没经过审核,很多 SQL 都存在未命中索引的问题。想知道 V 友在开发过程中是怎么解决这个问题的,有没有快速的方法实现这样一种流程:研发测试接口->生成接口 SQL 统计->提交审核->生成审核报告->研发修改 SQL ?

    PS: 公司接口都是 NodeJS 开发,egg 框架

    12 条回复    2018-11-26 08:30:54 +08:00
    thisisgpy
        1
    thisisgpy  
       2018-11-25 00:29:10 +08:00
    小团队就不要搞这么复杂了,懂 SQL 的相互 review。
    codelover2016
        2
    codelover2016  
       2018-11-25 00:47:09 +08:00
    小团队上监控吧,别搞这种审核的东西...
    jadec0der
        3
    jadec0der  
       2018-11-25 00:47:12 +08:00 via Android
    打开 MySQL 的慢查询日志,DBA 或者 SRE 监控慢查询,发现就通知开发改
    glacer
        4
    glacer  
    OP
       2018-11-25 00:55:43 +08:00 via iPhone
    @codelover2016 @jadec0der 现在就是用监控就去发现,但一些"坏"SQL 在业务低谷并不表现出慢查询的特征,只有在高峰期才会爆发,而一旦爆发就是一次线上故障...所以希望能在上线前就能除掉隐患。
    AltairT
        5
    AltairT  
       2018-11-25 01:00:38 +08:00
    我能说我在的公司最近上了套路云的 RDS,几个人在一起优化慢查询吗?之前也有保存慢查询,但是不统计出来是不知道竟然有几十秒,上百秒的慢查询。团队小,能做的只是加索引,通过执行计划来调整,尽量走索引,有需要配合业务代码的修改。
    glacer
        6
    glacer  
    OP
       2018-11-25 01:03:05 +08:00 via iPhone
    @AltairT 我们也是套路云,一般慢查询能在慢查询日志里查出来优化掉,但有些查询是在一定并发下才会慢,这种就比较头疼,只有在业务异常的时候才会被发现,比较被动。
    jadec0der
        7
    jadec0der  
       2018-11-25 01:03:24 +08:00 via Android
    @glacer 人工审核 or 压测,有专职 DBA 的话 review 所有 SQL 工作量并不大
    AltairT
        8
    AltairT  
       2018-11-25 01:07:05 +08:00 via iPhone
    @glacer 楼上说得对,除非有专职 dba,否则没办法。我们公司一开始也想找个专职 dba,但是奈何庙小钱少,只能一起讨论改改了
    1194129822
        9
    1194129822  
       2018-11-25 01:43:31 +08:00 via Android
    很可能不是 sql 导致的,而且事务导致的,我这边公司也有几十人的技术团队了,一个老项目开了全局事务,造成即使使用 id 查询更新,在并发大的时候都可能搞垮数据库,主要去不掉,没人敢动
    zhengxiaowai
        10
    zhengxiaowai  
       2018-11-25 10:08:20 +08:00
    slow query 监控报警,设置查询超时,上线压测。
    LemonCoo1
        11
    LemonCoo1  
       2018-11-25 10:56:59 +08:00
    @glacer 你们这个应该是并发问题,平时不慢说明数据库压力不大,建议压测看看各系统资源情况,热数据上缓存
    jss
        12
    jss  
       2018-11-26 08:30:54 +08:00 via iPhone
    数据库设计很重要,不要让小白去做!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3139 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:21 · PVG 22:21 · LAX 06:21 · JFK 09:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.