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
MartinWu
V2EX  ?  MySQL

如何根据所有的业务 sql,来解析出业务 sql 的模版?

  •  
  •   MartinWu ·
    Martwu · 2020-12-24 17:07:41 +08:00 · 3421 次点击
    这是一个创建于 1236 天前的主题,其中的信息可能已经有所发展或是发生改变。
    当前有这么一个需求,mysql 上记录了所有的慢查询,我想根据此慢查询日志文件,来总结出若干个业务 sql 的模版,相当于腾讯云的 mysql 提供的 sql 模版,那样的功能。
    第 1 条附言  ·  2020-12-25 10:30:58 +08:00
    经过大家引导,我确认了下,我想要的功能就是 pt-query-digest 里提供的一部分功能了。我先看看其他开源的替代。
    15 条回复  ?  2023-01-29 17:19:48 +08:00
    MartinWu
        1
    MartinWu  
    OP
       2020-12-24 17:08:48 +08:00
    xi 像这样的。
    MartinWu
        2
    MartinWu  
    OP
       2020-12-24 17:09:59 +08:00
    我找了一些 python 的模块,发现并不能很好的解析到所有的 sql 语句,对,甚至无法正确解析。我想的是,找到那么一个库,能准确分析出 sql 中的所有元素,这样我也好去汇总。
    qiayue
        3
    qiayue  
       2020-12-24 17:13:55 +08:00
    看起来是把 = 之后的数值改成问号
    MartinWu
        4
    MartinWu  
    OP
       2020-12-24 17:16:46 +08:00
    @qiayue 大概是如此,但也不尽如此,还有例如 in,也需要去掉值汇总,也有例如联表查询 tablea.key = tableb.key 时,两个都不可以省略。
    YouLMAO
        5
    YouLMAO  
       2020-12-24 20:38:12 +08:00
    惊, 你们 sql 是裸写的, 居然不封装函数的, 封装了有啥模板必要性
    CoderGeek
        6
    CoderGeek  
       2020-12-24 20:55:24 +08:00
    可变参数全改成?嘛 没写过 py 现成的导入 slow 文件的工具有的 mysql 自带把 前 100 ?
    MartinWu
        7
    MartinWu  
    OP
       2020-12-24 23:20:01 +08:00
    @YouLMAO #5 我们还有业务是拼 SQL 的骚操作。。。。
    MartinWu
        8
    MartinWu  
    OP
       2020-12-24 23:20:22 +08:00
    @CoderGeek #6 请问下是哪个工具?
    opengps
        9
    opengps  
       2020-12-24 23:32:01 +08:00
    这种工具得花点精力找找,着色的容易,很多富文本都支持,格式化的也不算难,但是同时支持格式化着色的,似乎没见过成品
    loading
        10
    loading  
       2020-12-24 23:34:06 +08:00 via Android
    应该从业务流程重新抽象出模板,万一 sql 压根就绕了弯路,你再怎么整都没意义。
    ETiV
        11
    ETiV  
       2020-12-25 06:52:58 +08:00 via iPhone
    https://v2ex.com/t/738704
    LZ 你可以把你的这个问题 丢给这个帖子的 LZ?
    给他一个学习的目标、动力
    MartinWu
        12
    MartinWu  
    OP
       2020-12-25 10:06:06 +08:00
    @ETiV #11 你这是机智。。。。
    zczy
        13
    zczy  
       2020-12-25 10:15:08 +08:00
    直接用 calcite 解析试试呢,解析成 SqlNode
    0x0208v0
        14
    0x0208v0  
       2023-01-27 16:13:55 +08:00
    楼主这个问题你解决了吗?最近遇到了类似的问题,搜索到了这个帖子
    MartinWu
        15
    MartinWu  
    OP
       2023-01-29 17:19:48 +08:00
    @v2exblog 我最后是用 Percona Monitoring and Management
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1189 人在线   最高记录 6547   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:26 · PVG 02:26 · LAX 11:26 · JFK 14:26
    Developed with CodeLauncher
    ? Do have faith in what you're doing.


    http://www.vxiaotou.com