gtxyzz

MySQL与JDBC之间的SQL预编译技术讲解

gtxyzz linux 2023-02-27 4116浏览 1440

 

先说一下SQL预编译的好处吧

  • 减少每次执行语句时解析语句的开销。 通常,数据库应用程序处理大量几乎相同的语句,只对语句中的文字值或变量值进行更改
  • 防止SQL注入攻击。 参数值可以包含未转义的SQL引号和分隔符。

不过在这之前我一直以为JDBC预编译技术是依赖数据库MySQL实现,现在才知道SQL预编译也是分服务端和客户端实现的。

JDBC默认是客户端处理SQL预编译的,如果向指定用服务端SQL预编译的话,可以在数据源连接上配置useServerPrepStmts=true,这样就可以开启服务端SQL预编译。

当然这也是要服务端支持SQL预编译,拿MySQL5.7以上来讲是支持的。

下面贴上MySQL官方文档截图

MySQL与JDBC之间的SQL预编译技术讲解

MySQL与JDBC之间的SQL预编译技术讲解

如何验证SQL预编译是用得服务端实现还是客户端实现呢,这里参考了一篇文章点击文字即可查看。

我这里我大概说一下,以MySQL为例就是开始general_log日志,general_log日志会记录哭客户端发给服务器的SQL,这里我没就能有关参考对比了。

注意:general_log开启会产生大量日志,没有特殊情况不要在生产环境开启

同样阅读MySQL官方文档sql-prepared-statements部分,发现MySQL实现服务端预编译是专门提供了几个语法支持的如下:

MySQL与JDBC之间的SQL预编译技术讲解

MySQL与JDBC之间的SQL预编译技术讲解

两种实现进行基准测试

这里在提供预编译技术服务端实现 && 客户端实现的基准测试供大家参考:

机器配置:

  • 系统:Windows10
  • CPU:AMD Ryzen 5 4600U with Radeon Graphics 2.10 GHz
  • 内存:24.0 GB
  • 磁盘:500GB SSD
  • MySQL 用的是默认配置

结果很意外以为服务端实现应该性能要好一些,实测居然是客户端实现要好一些,不过相差微乎其微,具体如下图:

MySQL与JDBC之间的SQL预编译技术讲解

MySQL与JDBC之间的SQL预编译技术讲解

客户端实现是否存在SQL注入风险呢?

我们用代码验证一下

MySQL与JDBC之间的SQL预编译技术讲解

执行方法后查看mysql日志

MySQL与JDBC之间的SQL预编译技术讲解

我们可以看到客户端预编译也是可以保障SQL注入风险的

我们顺带看看服务端预编译是怎么样的呢?

MySQL与JDBC之间的SQL预编译技术讲解

也是没有问题。

总结

  • SQL预编译区分客户端/服务端实现
  • 以及对两种实现进行了基准测试,客户端SQL预编译以微弱的性能胜出,当然这个结果只能当个参考不能以偏概全
  • 测试了客户端实现的SQL注入问题,测试结果通过

 

继续浏览有关 数据库技术文章/教程 的文章
1440条评论
  • 游客 发表于 2周前 回复

    今天过得很不爽!http://51f.yunzongcn.com

  • 游客 发表于 2周前 回复

    林子大了,什么鸟都有了啊!http://r409d.yunzongcn.com

  • 游客 发表于 2周前 回复

    支持一下,下面的保持队形!http://830.0519srdz.com

  • 游客 发表于 2周前 回复

    被楼主的逻辑打败了!http://8jxe.gljwxkjxc.com

  • 游客 发表于 2周前 回复

    今天是个特别的日子,值得纪念!http://os28.ckppe.cn

  • 游客 发表于 2周前 回复

    不是惊喜,是惊吓!http://wfi20.yunzongcn.com

  • 游客 发表于 2周前 回复

    今天上网不回帖,回帖就回精华帖!http://39w.fyfzfyyjx.com

  • 游客 发表于 2周前 回复

    灌水不是我的目的!http://geyix.9aiwifi.com

  • 游客 发表于 2周前 回复

    写得实在太好了,我唯一能做的就是默默顶贴!http://2pxqz.yunzongcn.com

  • 游客 发表于 2周前 回复

    楼主是我最崇拜的人!http://e58.catme.com.cn

  • 游客 发表于 2周前 回复

    看了这么多帖子,第一次看看到这么有内涵的!http://x2m6zi.yunzongcn.com

  • 游客 发表于 2周前 回复

    被楼主的逻辑打败了!http://d54.dgxycake.com

  • 游客 发表于 2周前 回复

    支持一下,下面的保持队形!http://apx.w2artstudio.com

  • 游客 发表于 2周前 回复

    这么版块的帖子越来越有深度了!http://0zek.w2artstudio.com

  • 游客 发表于 2周前 回复

    好好学习楼主的帖子!http://t14.zststn.cn

  • 游客 发表于 2周前 回复

    感谢楼主的推荐!http://70k7ss.dtzxyry.com

  • 游客 发表于 2周前 回复

    精华帖的节奏啊!http://0ztlij.gz-baiyu.com

  • 访客 发表于 2周前 回复

    安福相册https://ccc444.com

  • 游客 发表于 2周前 回复

    这位作者的文笔极其出色,用词精准、贴切,能够形象地传达出他的思想和情感。http://l3lq.tjjyfs.com

  • 游客 发表于 2周前 回复

    以后就跟楼主混了!http://i46d.tjjyfs.com

  • 游客 发表于 2周前 回复

    收藏了,楼主加油!http://95s.data1688.cn

  • 游客 发表于 2周前 回复

    今天的心情很不错啊http://q55q2g.tptxcctv.com

  • 游客 发表于 2周前 回复

    楼主的头像能辟邪啊!http://fgy.zhenfengdz.com

  • 游客 发表于 2周前 回复

    很多天不上线,一上线就看到这么给力的帖子!http://8g9ddg.wzjinge.com

  • 游客 发表于 2周前 回复

    勤奋灌水,天天向上!http://8at5i3.zhenfengdz.com

  • 游客 发表于 2周前 回复

    经典,收藏了!http://87j.zhenfengdz.com

  • 游客 发表于 2周前 回复

    观点鲜明,立场坚定,作者态度明确。http://xgin.qzktjs.com

  • 游客 发表于 2周前 回复

    楼主的头像是本人吗?http://svgq.czsek.com

  • 游客 发表于 2周前 回复

    好帖子!http://0dp5.eaketoken.com

  • 游客 发表于 2周前 回复

    支持一下,下面的保持队形!http://t63iz.yuanmengxuan.com

  • 游客 发表于 2周前 回复

    楼上的真不讲道理!http://76xw2.yymxjj.com/20240712/5.html

  • 游客 发表于 2周前 回复

    楼主是一个神奇的青年!http://7pk.zbqinjiang.com

  • 游客 发表于 2周前 回复

    楼主加油,看好你哦!http://5be1v.yuanmengxuan.com

  • 游客 发表于 2周前 回复

    帖子好乱!http://3wbi.czac.cn

  • 游客 发表于 2周前 回复

    好帖子!http://j99xnq.0411pd.cn

  • 游客 发表于 2周前 回复

    我回帖楼主给加积分吗?http://33w.ckppe.cn

  • 游客 发表于 2周前 回复

    今天过得很不爽!http://nntazj.yunzongcn.com

  • 游客 发表于 2周前 回复

    楼主的帖子提神醒脑啊!http://27s0tn.yunzongcn.com

  • 游客 发表于 2周前 回复

    看帖、回帖、拿分、走人http://qts9d.guhfn.com/01/5.html

  • 游客 发表于 2周前 回复

    楼主的头像能辟邪啊!http://0hc.cdrrhjm.com

  • 游客 发表于 2周前 回复

    楼上的心情不错啊!http://gjxto.fslanan.com/07/3.html

  • 游客 发表于 2周前 回复

    论坛的帖子越来越有深度了!http://fcs.05ausg2.cn

  • 游客 发表于 2周前 回复

    很有看点!http://cvngzd.yunzongcn.com

  • 游客 发表于 2周前 回复

    东方不败外加灭绝师太啊!http://1n75.qiudashen.com

  • 游客 发表于 2周前 回复

    楼主是我最崇拜的人!http://43d.lqbsxaf.cn

  • 游客 发表于 2周前 回复

    楼主好聪明啊!http://xl27k.jbc16.com/01/4.html

  • 游客 发表于 2周前 回复

    楼主的帖子提神醒脑啊!http://657lo.goldeasycloud.com/b/5.html

  • 游客 发表于 2周前 回复

    顶一个!http://hjw.kdfcg.com

  • 游客 发表于 2周前 回复

    投楼主一票,不用谢哦!http://r64y3b.dznww9067.com

  • 游客 发表于 2周前 回复

    楼主的头像是本人吗?http://87b9z.818cheng.com

  • 游客 发表于 2周前 回复

    不错的帖子,值得收藏!http://zsu38.kangmuizz.com

  • 游客 发表于 2周前 回复

    我就搞不明白了,看帖回帖能死人么,居然只有我这么认真的在回帖!http://longkangys.com.cn/news/3d399636.html

  • 游客 发表于 2周前 回复

    十分赞同楼主!http://cbh.sxsstf.com

  • 游客 发表于 2周前 回复

    论坛人气好旺!http://f0a.aijiankang99.com

  • 游客 发表于 2周前 回复

    刚分手,心情不好!http://tn8.y51888888.com

  • 游客 发表于 2周前 回复

    楼主练了葵花宝典吧?http://www.hntbhz.cn/post/9.html

  • 游客 发表于 2周前 回复

    看帖、回帖、拿分、走人http://www.hntbhz.cn/post/49.html

  • 游客 发表于 2周前 回复

    楼主最近很消极啊!http://oow8.aijiankang99.com

  • 游客 发表于 2周前 回复

    怎么我回帖都没人理我呢?http://aijiankang99.com/news/95d399544.html

  • 游客 发表于 2周前 回复

    观点鲜明,立场坚定,作者态度明确。http://ytbt.cn/news/86d399553.html

  • 游客 发表于 2周前 回复

    楼主是男的还是女的?http://rwb.yunzongcn.com

  • 游客 发表于 2周前 回复

    看帖不回帖的人就是耍流氓,我回复了!http://otmru.wsxjs.com/01/4.html

  • 游客 发表于 2周前 回复

    鉴定完毕!http://www.kdhlpt.com/yaowen/959787309.html

  • 游客 发表于 2周前 回复

    青春不在了,青春痘还在!http://www.kdhlpt.com/yaowen/813751293.html

  • 游客 发表于 2周前 回复

    回帖也有有水平的!http://www.kdhlpt.com/yaowen/956469364.html

  • 游客 发表于 2周前 回复

    楼主是我最崇拜的人!http://www.kdhlpt.com/yaowen/914651206.html

  • 游客 发表于 2周前 回复

    强,我和我的小伙伴们都惊呆了!http://www.hntbhz.cn/post/36.html

  • 游客 发表于 2周前 回复

    收藏了,改天让朋友看看!http://fbmj3.a3648.com/01/4.html

  • 游客 发表于 2周前 回复

    网页的加载速度非常快,不会影响用户体验。http://stqj.hangboss.net/test/487313779.html

  • 游客 发表于 2周前 回复

    楼上的这是啥态度呢?http://srtv.hangboss.net/test/991552027.html

  • 游客 发表于 2周前 回复

    楼主主机很热情啊!http://cbfl.hangboss.net/test/258533638.html

  • 游客 发表于 2周前 回复

    灌水不是我的目的!http://ahwg.lvdouya.net/test/150093848.html

  • 游客 发表于 2周前 回复

    谢谢楼主的分享!http://kxwy.hangboss.net/test/336736993.html

  • 游客 发表于 2周前 回复

    楼主的帖子越来越有深度了!http://sb6j8.yunzongcn.com

  • 游客 发表于 2周前 回复

    这么好的帖子,应该加精华!http://jbcs.hangboss.net/test/136214762.html

  • 游客 发表于 2周前 回复

    太邪乎了吧?http://wicn.hangboss.net/test/901534437.html

  • 游客 发表于 2周前 回复

    勤奋灌水,天天向上!http://anyq.hangboss.net/test/642697213.html

  • 游客 发表于 2周前 回复

    楼上的心情不错啊!http://ulhk.lvdouya.net/test/818512179.html

  • 游客 发表于 2周前 回复

    知识就是力量啊!http://qlph.hangboss.net/test/554741889.html

  • 游客 发表于 2周前 回复

    这里的资源非常丰富,帮助我解决了很多问题。http://ilzg.hangboss.net/test/439894391.html

  • 游客 发表于 2周前 回复

    楼上的说的很多!http://wyzo.lvdouya.net/test/536238083.html

  • 游客 发表于 2周前 回复

    一口气看完了,我要下去回味回味了!http://kixs.lvdouya.net/test/988525948.html

  • 游客 发表于 2周前 回复

    有内涵!http://gwvq.lvdouya.net/test/441060398.html

  • 游客 发表于 2周前 回复

    这么好的帖子,应该加精华!http://telq.hangboss.net/test/815449630.html

  • 游客 发表于 2周前 回复

    楼主今年多大了?http://mvqp.hangboss.net/test/728302257.html

  • 游客 发表于 2周前 回复

    管它三七二十一!http://ofgs.hangboss.net/test/785339779.html

  • 游客 发表于 2周前 回复

    没人理我,好伤心啊!http://pufw.lvdouya.net/test/213313002.html

  • 游客 发表于 2周前 回复

    不是惊喜,是惊吓!http://pkmr.hangboss.net/test/692084112.html

  • 游客 发表于 2周前 回复

    论坛人气好旺!http://sbl5a.biron-negoce.com/01/4.html

  • 游客 发表于 2周前 回复

    楼上的别说的那么悲观好吧!http://qfgp.hangboss.net/test/756166963.html

  • 游客 发表于 2周前 回复

    突然觉得楼主说的很有道理,赞一个!http://rnjsy.szplejg.com/2/4.html

  • 游客 发表于 2周前 回复

    经典!http://krdo.lvdouya.net/test/355838724.html

  • 游客 发表于 2周前 回复

    看帖不回帖都是耍流氓!http://gkpw.hangboss.net/test/897268501.html

  • 游客 发表于 2周前 回复

    收藏了,改天让朋友看看!http://mrqo.hangboss.net/test/260550377.html

  • 游客 发表于 2周前 回复

    论坛的人气不行了!http://kazl.lvdouya.net/test/141812024.html

  • 游客 发表于 2周前 回复

    楼主加油,看好你哦!http://wwtw.hangboss.net/test/174715944.html

  • 游客 发表于 2周前 回复

    看在楼主的面子上,认真回帖!http://jlik.hangboss.net/test/707287905.html