深入解析:SQL语句识别与分类技巧

更新:10-27 神话故事 我要投稿 纠错 投诉

从id=1 的用户中选择*;

从id=2 的用户中选择*;虽然两条语句返回的结果不同,但特征都是:

查询USERS表所有字段的条件是id=?因此,从特性上来说,上面两条SQL是一样的,区别在于参数,当然还有大小写。因此:

如果我们将SQL 中的所有参数替换为?并统一所有大小写,然后计算SQL语句的md5值就可以作为SQL的独特特征,也可以称为SQL的指纹

0x01 SQL 特征实现

技术实现原理也很简单。简单来说,只需要两步:

通过实现Vistor解析SQL并获取AST(抽象语法树),遍历整个AST,统一写法。遇到参数时,直接替换为? Java程序员很幸运,可以直接调用阿里巴巴开源com.alibaba/druid库的com。 alibaba.druid.sql.visitor.ParameterizedOutputVisitorUtils#parameterize(sql, dbType) 一句话就可以搞定。幸运的是,人民直播雷锋网的Druid库支持多种SQL,包括Oracle/MySQL/Hive。

0x02 SQL fingerprint 用处

识别出SQL的特征后,可以计算出所有可用SQL的特征,并根据特征进行GROUP BY。

MySQL Slow Query

最直接的使用场景就是利用MySQL的慢查询日志来计算特征,这样就可以知道哪一类SQL是执行瓶颈。也许你发现10,000 个慢查询实际上是一个?

著名的Percona开源Percona Tookit中的pt-query-digest其实就是基于这个思想的,推荐使用它。

再者,大家不都是把日志扔到ELK里吗?更方便的方法是不解析MySQL慢查询日志扔进ELK,添加一个SQL_fingerprint字段,这样就可以定位到慢查询,直接搜索一个SQL_fingerprint就可以知道诸如慢查询发生的频率之类的什么时间段?

数据分析 SQL 识别

现在大家都在讲大数据,所以分析师会写很多SQL来进行数据查询。如果您有SQL

特征库:

关于深入解析:SQL语句识别与分类技巧,的介绍到此结束,希望对大家有所帮助。

用户评论

冷眼旁观i

这篇文章一定很有帮助!我最近在学习SQL,想了解一下语句结构的特点

    有15位网友表示赞同!

采姑娘的小蘑菇

以前觉得SQL语句就是写命令那么简单,没想到还有这么细致的研究

    有7位网友表示赞同!

拥菢过后只剰凄凉

学习编程最怕迷路,能更清楚地认识代码特征,进步会更明显吧

    有8位网友表示赞同!

别在我面前犯贱

现在很多数据库都是用的SQL,这个研究肯定很有实际价值。

    有5位网友表示赞同!

独角戏°

我很好奇这篇文章会分析哪些类型的SQL语句特征

    有8位网友表示赞同!

■孤独像过不去的桥≈

希望能看到一些具体的例子,更能理解这些特征的应用

    有13位网友表示赞同!

赋流云

这种特征识别技术有没有什么缺点或者局限性呢?

    有11位网友表示赞同!

莫飞霜

想知道文章会探讨如何使用这些特征改进SQL数据库的安全

    有11位网友表示赞同!

寂莫

是不是可以用这个技术来自动生成SQL语句?

    有20位网友表示赞同!

陌上花

对于菜鸟来说,学习识别的技巧会不会比较困难?

    有7位网友表示赞同!

如你所愿

这个研究有没有应用到其他编程语言上呢?

    有20位网友表示赞同!

歇火

SQL语句的特征识别对数据库优化有什么影响吗?

    有12位网友表示赞同!

泡泡龙

我对这个研究很有兴趣,希望能了解更多关于SQL语句分析的方法

    有7位网友表示赞同!

心悸╰つ

如果能结合一些机器学习技巧就更厉害了!

    有20位网友表示赞同!

那伤。眞美

听起来这是一个非常前沿的研究领域,很有潜力

    有13位网友表示赞同!

不浪漫罪名

期待看到更多基于此技术的应用和发展

    有7位网友表示赞同!

尘埃落定

这样的研究能够帮助我们更好地理解SQL的本质

    有11位网友表示赞同!

闲肆

希望这篇文章能为学习和使用SQL的人提供一些新的启发

    有15位网友表示赞同!

艺菲

我很想了解一下具体的识别算法是如何工作的

    有20位网友表示赞同!

【深入解析:SQL语句识别与分类技巧】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活

上一篇:《知否》:老辈女性群像描绘,恋爱脑与玛丽苏并存 下一篇:《冰川时代》全系列资源下载与在线观看指南