最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL與JDBC之間的SQL預(yù)編譯技術(shù)講解

 更新時(shí)間:2022年11月15日 15:07:18   作者:xfeng_lalala  
這篇文章主要介紹了MySQL與JDBC之間的SQL預(yù)編譯技術(shù)講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

先說(shuō)一下SQL預(yù)編譯的好處吧

  • 減少每次執(zhí)行語(yǔ)句時(shí)解析語(yǔ)句的開銷。 通常,數(shù)據(jù)庫(kù)應(yīng)用程序處理大量幾乎相同的語(yǔ)句,只對(duì)語(yǔ)句中的文字值或變量值進(jìn)行更改
  • 防止SQL注入攻擊。 參數(shù)值可以包含未轉(zhuǎn)義的SQL引號(hào)和分隔符。

不過在這之前我一直以為JDBC預(yù)編譯技術(shù)是依賴數(shù)據(jù)庫(kù)MySQL實(shí)現(xiàn),現(xiàn)在才知道SQL預(yù)編譯也是分服務(wù)端和客戶端實(shí)現(xiàn)的。

JDBC默認(rèn)是客戶端處理SQL預(yù)編譯的,如果向指定用服務(wù)端SQL預(yù)編譯的話,可以在數(shù)據(jù)源連接上配置useServerPrepStmts=true,這樣就可以開啟服務(wù)端SQL預(yù)編譯。

當(dāng)然這也是要服務(wù)端支持SQL預(yù)編譯,拿MySQL5.7以上來(lái)講是支持的。

下面貼上MySQL官方文檔截圖

如何驗(yàn)證SQL預(yù)編譯是用得服務(wù)端實(shí)現(xiàn)還是客戶端實(shí)現(xiàn)呢,這里參考了一篇文章點(diǎn)擊文字即可查看。

我這里我大概說(shuō)一下,以MySQL為例就是開始general_log日志,general_log日志會(huì)記錄哭客戶端發(fā)給服務(wù)器的SQL,這里我沒就能有關(guān)參考對(duì)比了。 

注意:general_log開啟會(huì)產(chǎn)生大量日志,沒有特殊情況不要在生產(chǎn)環(huán)境開啟。

同樣閱讀MySQL官方文檔sql-prepared-statements部分,發(fā)現(xiàn)MySQL實(shí)現(xiàn)服務(wù)端預(yù)編譯是專門提供了幾個(gè)語(yǔ)法支持的如下:

兩種實(shí)現(xiàn)進(jìn)行基準(zhǔn)測(cè)試

這里在提供預(yù)編譯技術(shù)服務(wù)端實(shí)現(xiàn) && 客戶端實(shí)現(xiàn)的基準(zhǔn)測(cè)試供大家參考:

機(jī)器配置:

  • 系統(tǒng):Windows10
  • CPU:AMD Ryzen 5 4600U with Radeon Graphics 2.10 GHz
  • 內(nèi)存:24.0 GB
  • 磁盤:500GB SSD
  • MySQL 用的是默認(rèn)配置

結(jié)果很意外以為服務(wù)端實(shí)現(xiàn)應(yīng)該性能要好一些,實(shí)測(cè)居然是客戶端實(shí)現(xiàn)要好一些,不過相差微乎其微,具體如下圖:

客戶端實(shí)現(xiàn)是否存在SQL注入風(fēng)險(xiǎn)呢?

我們用代碼驗(yàn)證一下

執(zhí)行方法后查看mysql日志

我們可以看到客戶端預(yù)編譯也是可以保障SQL注入風(fēng)險(xiǎn)的

我們順帶看看服務(wù)端預(yù)編譯是怎么樣的呢?

也是沒有問題。

總結(jié)

  • SQL預(yù)編譯區(qū)分客戶端/服務(wù)端實(shí)現(xiàn)
  • 以及對(duì)兩種實(shí)現(xiàn)進(jìn)行了基準(zhǔn)測(cè)試,客戶端SQL預(yù)編譯以微弱的性能勝出,當(dāng)然這個(gè)結(jié)果只能當(dāng)個(gè)參考不能以偏概全
  • 測(cè)試了客戶端實(shí)現(xiàn)的SQL注入問題,測(cè)試結(jié)果通過

文末提供幾個(gè)MySQL官方文檔對(duì)SQL預(yù)編譯說(shuō)明鏈接有興趣的小伙伴可以點(diǎn)擊閱讀

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL用戶賬戶管理和權(quán)限管理深入講解

    MySQL用戶賬戶管理和權(quán)限管理深入講解

    這篇文章主要給大家介紹了關(guān)于MySQL用戶賬戶管理和權(quán)限管理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • MySQL 5.7.22 二進(jìn)制包安裝及免安裝版Windows配置方法

    MySQL 5.7.22 二進(jìn)制包安裝及免安裝版Windows配置方法

    這篇文章通過實(shí)例代碼給大家介紹了MySQL 5.7.22 二進(jìn)制包安裝教程,文章末尾給大家補(bǔ)充介紹了mysql 5.7.22 免安裝版Windows配置方法,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-08-08
  • SQL語(yǔ)句詳解 MySQL update的正確用法

    SQL語(yǔ)句詳解 MySQL update的正確用法

    以下的文章主要介紹的是MySQL update 語(yǔ)句的實(shí)際用法,我們首先是以單表的UPDATE語(yǔ)句來(lái)引出實(shí)現(xiàn)MySQL update 語(yǔ)句的實(shí)際方案,以下就是文章的詳細(xì)內(nèi)容描述,望你看完之后會(huì)有收獲
    2012-01-01
  • 關(guān)于k8s環(huán)境部署mysql主從的問題

    關(guān)于k8s環(huán)境部署mysql主從的問題

    這篇文章主要介紹了k8s環(huán)境部署mysql主從的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • 詳解如何在阿里云服務(wù)器安裝Mysql數(shù)據(jù)庫(kù)

    詳解如何在阿里云服務(wù)器安裝Mysql數(shù)據(jù)庫(kù)

    這篇文章主要介紹了詳解如何在阿里云服務(wù)器安裝Mysql數(shù)據(jù)庫(kù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • MySQL 如何使用事務(wù)

    MySQL 如何使用事務(wù)

    這篇文章主要介紹了MySQL 如何使用事務(wù),幫助大家更好的理解和學(xué)習(xí)MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-09-09
  • MySQL數(shù)據(jù)庫(kù)可以用任意ip連接訪問的方法

    MySQL數(shù)據(jù)庫(kù)可以用任意ip連接訪問的方法

    本文主要介紹了MySQL數(shù)據(jù)庫(kù)可以用任意ip連接訪問的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • MySql避免重復(fù)插入記錄的幾種方法

    MySql避免重復(fù)插入記錄的幾種方法

    本文章來(lái)給大家提供三種在mysql中避免重復(fù)插入記錄方法,主要是講到了ignore,Replace,ON DUPLICATE KEY UPDATE三種方法,有需要的朋友可以參考一下
    2013-08-08
  • MySQL連接無(wú)法解析HOST主機(jī)名的解決方法

    MySQL連接無(wú)法解析HOST主機(jī)名的解決方法

    這篇文章主要介紹了MySQL連接無(wú)法解析HOST主機(jī)名的解決方法,需要的朋友可以參考下
    2014-02-02
  • mysql 找回誤刪表的數(shù)據(jù)方法(必看)

    mysql 找回誤刪表的數(shù)據(jù)方法(必看)

    下面小編就為大家?guī)?lái)一篇mysql 找回誤刪表的數(shù)據(jù)方法(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-03-03

最新評(píng)論

本溪市| 桐乡市| 北宁市| 衡阳市| 田东县| 沭阳县| 乐平市| 伊宁县| 青铜峡市| 顺义区| 锡林浩特市| 和静县| 营山县| 鄂托克旗| 察哈| 沙雅县| 光山县| 山西省| 麻栗坡县| 三门峡市| 斗六市| 光山县| 开阳县| 兴海县| 清丰县| 佛山市| 蒙自县| 视频| 临安市| 来安县| 潜江市| 扎囊县| 堆龙德庆县| 寿光市| 慈利县| 龙川县| 新野县| 卓尼县| 托克逊县| 拜泉县| 前郭尔|