欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

DB為什么會(huì)大量出現(xiàn)select@@session.tx_read_only

小編給大家分享一下DB為什么會(huì)大量出現(xiàn)select @@session.tx_read_only,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),襄汾企業(yè)網(wǎng)站建設(shè),襄汾品牌網(wǎng)站建設(shè),網(wǎng)站定制,襄汾網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,襄汾網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

發(fā)現(xiàn)問題

在一次撈取Top SQL中,發(fā)現(xiàn)DB大量執(zhí)行 select @@session.tx_read_only ,幾乎每一條DML語句前,都會(huì)有這么一個(gè)sql。但是應(yīng)用層并沒有做特殊處理,那么這個(gè)SQL語句有什么作用?是誰執(zhí)行了它?

詳細(xì)介紹

此sql的作用主要是判斷事務(wù)是否為只讀事務(wù)。MySQL自身會(huì)對(duì)只讀事務(wù)做優(yōu)化,這是 MySQL5.6.5 版本 以后才出現(xiàn)的。 http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_tx_read_only

定位到MySQL的驅(qū)動(dòng)包

ConnectionImpl.java :

DB為什么會(huì)大量出現(xiàn)select @@session.tx_read_only

可以看到,在if條件中,對(duì)MySQL的 版本 做了判斷,同時(shí)也有  !getUseLocalSessionState()  這么一個(gè)條件,對(duì)應(yīng) JDBC參數(shù)useLocalSessionState ,當(dāng)這個(gè)值為false時(shí),會(huì)發(fā)出select @@session.tx_read_only; 這條sql。

默認(rèn)情況下,我們的連接串信息沒有包含useLocalSessionState參數(shù)的設(shè)置,這個(gè)值默認(rèn)為false。

這個(gè)值的作用是驅(qū)動(dòng)程序是否使用autocommit,read_only和transaction isolation的內(nèi)部值(jdbc端的本地值)。

如果設(shè)置為false,則需要這個(gè)判斷這三個(gè)參數(shù)的場(chǎng)景,都需要發(fā)語句到遠(yuǎn)端請(qǐng)求,比如更新語句前,

需要發(fā)語句select @@session.tx_read_only確認(rèn)會(huì)話是否只讀。

如果設(shè)置為true,則只需要取本地值即可。這可以解釋為什么有的實(shí)例 select @@session.tx_read_only語句很多。

一般情況下,驅(qū)動(dòng)可以保證本地值與遠(yuǎn)程服務(wù)器值保持一致。當(dāng)應(yīng)用調(diào)用setAutoCommit, setTransactionIsolation 和 setReadOnly這三個(gè)接口設(shè)置參數(shù)值時(shí),會(huì)與遠(yuǎn)程服務(wù)器同步。

具體而言,

當(dāng)useLocalSessionState為true時(shí),若值與本地值不一致,則發(fā)往遠(yuǎn)程更新;

當(dāng)useLocalSessionState為false時(shí),無論設(shè)置值與本地值是否一致,每次都發(fā)往遠(yuǎn)程更新。這可以解釋為什么有些實(shí)例set autocommit語句比較多。

但是,若用戶設(shè)置參數(shù)時(shí)不通過JDBC接口(比如setAutoCommit),而是執(zhí)行語句'set autocommit=xxx'設(shè)置, 那么就會(huì)存在本地值與遠(yuǎn)程不一致的情況,進(jìn)而可能導(dǎo)致修改參數(shù)useLocalSessionState后,業(yè)務(wù)邏輯發(fā)生變化。

相關(guān)設(shè)置的SQL語句:

set autocommit=0 /*設(shè)置會(huì)話自動(dòng)提交模式*/         對(duì)應(yīng)的JDBC接口:  setAutoCommit(false)
set tx_isolation='read-committed' /*設(shè)置事務(wù)的隔離級(jí)別*/    對(duì)應(yīng)的JDBC接口:setTransactionIsolation('read-committed') 
set tx_read_only=0; /*設(shè)置只讀事務(wù)*/             對(duì)應(yīng)的JDBC接口:setReadOnly(false)

設(shè)置useLocalSessionState默認(rèn)值為ture,可能導(dǎo)致業(yè)務(wù)邏輯含義發(fā)生變化。觸發(fā)的條件是,用戶通過SQL語句直接設(shè)置自動(dòng)提交參數(shù),隔離級(jí)別參數(shù)或只讀事務(wù)參數(shù)。

看完了這篇文章,相信你對(duì)“DB為什么會(huì)大量出現(xiàn)select @@session.tx_read_only”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

標(biāo)題名稱:DB為什么會(huì)大量出現(xiàn)select@@session.tx_read_only
文章路徑:http://aaarwkj.com/article4/igieie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷網(wǎng)站維護(hù)、域名注冊(cè)、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
日韩国产人妻一区二区| 丰满少妇一区二区三区在线观看| 日韩电影在线播放中文字幕| 亚洲经典日韩欧美一区| 国产精品毛片av在线| 在线观看后入大屁股| 日韩欧美亚洲一级黄片| 999久久久久亚洲精品| 日韩精品极品在线视频观看免费| 亚洲欧美精品一中文字幕| 亚洲蜜桃精品一区二区三区 | 精品久久久久久亚洲电影| 麻豆视传媒官网免费观看| 精品乱码一区二区三区四区| 亚洲中文字幕乱码第一页| 少妇高潮试看二十分钟| 亚洲伊人成综合人影院| 2020中文字字幕在线不卡| 欧美一区二区国产精品日韩| 欧美日韩在线视频一区| 日本av在线中文一区二区| 美女高潮呻吟免费观看久久久| 成年免费视频一区二区三区| 亚洲天堂毛片在线观看| 91啪在线观看91色| 丰满人妻毛片一区二区三区| 亚洲字幕中文在线乱码mv| 开心五月婷婷六月丁香| 高清一区二区三区不卡视频| 亚洲欧美综合区丁香六月| 顶级少妇做爰片高潮丸| 亚洲av乱码乱码精品| 久久精品国产一区二区| 91成年精品一区在线观看| 国产男女猛烈无遮挡网站 | 综合久久—本道中文字幕| 在线免费观看国产黄色av| 国产精品一区在线播放| 91午夜福利视频免费播放| 日韩在线国产精品一区| 日韩精品高清视频在线观看|