大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 MySQL綁定變量詳解

MySQL綁定變量詳解

更新時(shí)間:2021-01-29 17:46:30 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1240次

 

MySQL綁定變量是MySQL中非常重要的一個(gè)特性。主要還是通過(guò)SQL語(yǔ)句來(lái)實(shí)現(xiàn)對(duì)變量的綁定,綁定變量的SQL語(yǔ)句:INSERT INTO tbl(col1, col2, col3) VALUES (?, ?, ?);。綁定變量的SQL,使用問(wèn)號(hào)標(biāo)記可以接收參數(shù)的位置,當(dāng)真正需要執(zhí)行具體查詢的時(shí)候,則使用具體值代替這些問(wèn)號(hào)。

當(dāng)創(chuàng)建一個(gè)綁定變量SQL時(shí),客戶端(如C或JAVA等)向服務(wù)器發(fā)送了一個(gè)SQL語(yǔ)句的原型。服務(wù)器端收到這個(gè)SQL語(yǔ)句的框架后,解析并存儲(chǔ)這個(gè)SQL語(yǔ)句的部分執(zhí)行計(jì)劃,返回給客戶端一個(gè)SQL語(yǔ)句處理句柄。以后每次執(zhí)行這類查詢,客戶端都制定使用這個(gè)句柄。

MySQL在使用綁定變量的時(shí)候可以更高效地執(zhí)行大量重復(fù)語(yǔ)句的原因:

1.在服務(wù)器端只需要解析一次SQL語(yǔ)句。

2.在服務(wù)器端某些優(yōu)化器的工作只需要執(zhí)行一次,因?yàn)樗鼤?huì)緩存一部分的執(zhí)行計(jì)劃。

3.以二進(jìn)制的方式只發(fā)送參數(shù)和句柄,比起每次發(fā)送ASCII碼文本效率更高。不過(guò)最大的節(jié)省還是來(lái)自于BLOB和TEXT字段,綁定變量的形式可以分塊傳輸,而無(wú)須一次性傳輸。二進(jìn)制協(xié)議在客戶端也可以節(jié)省很多內(nèi)春,減少了網(wǎng)絡(luò)開(kāi)銷,還節(jié)省了將數(shù)據(jù)從存儲(chǔ)原始格式轉(zhuǎn)換成文本格式的開(kāi)銷。

4.僅僅是參數(shù)而不是整個(gè)查詢語(yǔ)句需要發(fā)送到服務(wù)器端,所以網(wǎng)絡(luò)開(kāi)銷會(huì)更小。

MySQL在存儲(chǔ)參數(shù)的時(shí)候,直接將其存放到緩存中,不再需要在內(nèi)存中多次復(fù)制。 5.綁定變量相對(duì)也更加安全。無(wú)須在應(yīng)用程序中處理轉(zhuǎn)義,一則更簡(jiǎn)單明了,二則也大大減少了SQL注入和攻擊的風(fēng)險(xiǎn)。

綁定變量是會(huì)話級(jí)別的,所以連接之間不能共用綁定變量句柄。同樣地,一旦連接斷開(kāi),則原來(lái)的句柄也不能再使用。(連接池和持久化連接可以在一定程度上緩解這個(gè)問(wèn)題)

MySQL5.1之前,綁定變量的SQL是不能使用查詢緩存的。并不是所有的時(shí)候使用綁定變量都能獲得更好的性能。如果只是執(zhí)行一次SQL,那么使用綁定變量的方式五一比直接執(zhí)行多了一次額外的準(zhǔn)備消耗階段,而且還需要一次額外的網(wǎng)絡(luò)開(kāi)銷。(要正確的使用綁定變量,還需要在使用完成之后,釋放相關(guān)的資源)

當(dāng)前版本下,還不能在存儲(chǔ)函數(shù)中使用綁定變量,但是在存儲(chǔ)過(guò)程中可以使用

如果總是忘記釋放綁定變量資源,則在服務(wù)器端很容易發(fā)發(fā)生資源泄漏。綁定變量SQL總是的限制是一個(gè)全局限制,所以某一個(gè)其他的錯(cuò)誤可能會(huì)對(duì)所有其它的線程都產(chǎn)生影響。

有些操作,如BEGIN,無(wú)法在綁定變量中完成。

三種綁定變量類型的部分區(qū)別:

1.客戶端模擬的綁定變量:客戶端的驅(qū)動(dòng)程序接收到一個(gè)帶參數(shù)的SQL,再將指定的值帶入其中,最后將完整的查詢發(fā)送到服務(wù)器端。

2.服務(wù)器端的綁定變量:客戶端使用特殊的二進(jìn)制協(xié)議將帶參數(shù)的字符串發(fā)送到服務(wù)器端,然后使用二進(jìn)制協(xié)議將具體的參數(shù)值發(fā)送給服務(wù)器端執(zhí)行。

3.SQL接口的綁定變量:客戶端先發(fā)送一個(gè)帶參數(shù)的字符串到服務(wù)器端,這類似與使用PREPARE的SQL語(yǔ)句,然后發(fā)送設(shè)置參數(shù)的SQL,最后使用EXECUTE來(lái)執(zhí)行SQL。所有這些都是用普通的文本傳輸協(xié)議。

以上就是MySQL綁定變量有關(guān)的知識(shí)點(diǎn)講解,實(shí)際上,作為MySQL的重要高級(jí)特性之一,能夠減少硬解析,降低CPU的爭(zhēng)用,節(jié)省shared_pool。在本站的MySQL教程中,對(duì)其他的MySQL高級(jí)特性都有這樣的詳細(xì)的講解,帶你輕松學(xué)會(huì)MySQL高級(jí)特性。

 

 

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-10-10 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 亚洲码在线 | 久久久久亚洲香蕉网 | 欧美成人 一区二区三区 | 久久久精品2021免费观看 | 九九成人免费视频 | 中文字幕亚洲精品日韩精品 | 蜜桃久久久 | 欧洲天堂 | 九九视频网站 | 成人精品一区二区久久 | 深夜福利视频在线一区 | 免费看成人播放毛片 | 一级毛片免费 | a毛片基地| 日本sese | 国产午夜成人无码免费看 | 午夜视频福利 | 国产欧美一区二区三区免费 | 国产呦系列免费 | 日本天天谢天天要天天爱 | 国产不卡影院 | 九九久久久 | 97视频免费公开成人福利 | 91福利刘玥国产在线观看 | 中国美女一级毛片 | 波多野结衣一区2区3区 | 欧美精品 日韩 | 色综合激情 | 精品推荐 国产 | 日韩中文字幕精品一区在线 | 国产福利在线观看视频 | 米奇7777狠狠狠狠视频影院 | 一区中文字幕 | 人人爱操 | 国产一区二区三区不卡免费观看 | 亚洲日韩中文字幕一区 | 日本一极毛片兔费看 | 色综合小说天天综合网 | 日韩中文字幕精品视频在线 | 久久九九免费 | 9999人体做爰大胆 |