mysql 協(xié)議

mysql 數(shù)據(jù)類型

Integer

mysql的整型有兩種

  • 固定長(zhǎng)度

    • int<1>
    • int<2>
    • int<3>
    • int<4>
    • int<6>
    • int<8>

假如要用一個(gè)3字節(jié)int<3>的表示1,那么他的十六進(jìn)制數(shù)是
01 00 00
假如要用一個(gè)3字節(jié)int<3>的表示256呢?

  • 可變長(zhǎng)度int<lenenc>

    • 如果值是< 251钥勋,用一個(gè)字節(jié)存
    • 如果值是 >=251 and < 2^16蕊肥,會(huì)存儲(chǔ)是三個(gè)字節(jié)勾习,第一個(gè)字節(jié)是fc開頭轧坎,然后緊接的2個(gè)字節(jié)表示實(shí)際大小股耽,例如fc fb 01 蹄咖,開頭是fc褐健,然后實(shí)際值是fb 01,這兩個(gè)字節(jié)從十六進(jìn)制轉(zhuǎn)為十進(jìn)制是511
    • 如果值是 >=2^16 and < 2^24次方澜汤,會(huì)存儲(chǔ)為4個(gè)字節(jié)蚜迅,第一個(gè)字節(jié)是fd,后面接3個(gè)字節(jié)
    • 如果值是 >= 2^24 and 2 ^64次方银亲,會(huì)存儲(chǔ)為9個(gè)字節(jié)慢叨,第一個(gè)字節(jié)是fe,后面接8個(gè)字節(jié)

所以可變長(zhǎng)度可能是會(huì)消耗1,3,4或者9個(gè)字節(jié)

字符串類型
  • FixedLengthString string<fix>
    這種是用固定字節(jié)的來(lái)保存字符串
  • NulTerminatedString string<NUL>
    這種字符串會(huì)以00進(jìn)行結(jié)束
  • VariableLengthString string<var>
  • LengthEncodedString string<lenenc>
    這種比較特殊务蝠,它的第一部分是用可變長(zhǎng)整型表示拍谐,然后第二部分接一個(gè)以改整型表示的固定長(zhǎng)度字符串表示即
    int<lenenc> + string<fix>
  • RestOfPacketString string<EOF>
    這種字符串一般是出現(xiàn)在報(bào)文的最后面,然后它的長(zhǎng)度時(shí)候根據(jù)報(bào)文長(zhǎng)度和當(dāng)前解析位置計(jì)算出來(lái)的
所有的數(shù)據(jù)類型如官網(wǎng)的下圖
數(shù)據(jù)類型大全
mysql官網(wǎng)的報(bào)文是如何表示的

我們首先要清楚以上的數(shù)據(jù)類型,因?yàn)镸ysql官方協(xié)議文檔就是用以上的類型去表達(dá)不同的報(bào)文轩拨。一般地践瓷,官網(wǎng)會(huì)首先定義payLoad部分,然后提供一個(gè)例子(包括報(bào)文頭)來(lái)展示每個(gè)發(fā)送出去的報(bào)文亡蓉。
如果報(bào)文例子里面用到了固定的值晕翠,例如某種報(bào)文頭的某個(gè)字節(jié)是一模一樣的,那么這個(gè)值會(huì)以中括號(hào)括起來(lái)砍濒,例如[00]

mysql報(bào)文傳輸是怎么樣的淋肾?

mysql協(xié)議把要發(fā)送的數(shù)據(jù) 分割成小于等于16MB-1字節(jié)的字節(jié)流(后面簡(jiǎn)稱payLoad),然后加上一個(gè)頭部作為一個(gè)協(xié)議包進(jìn)行發(fā)送爸邢,即
協(xié)議包: [報(bào)文頭] + 小于等于16MB-1字節(jié)的數(shù)據(jù)
其中報(bào)文頭的大小是4個(gè)字節(jié)樊卓,前三個(gè)字節(jié)表示的是固定長(zhǎng)度整型int<3>,表示的是協(xié)議包(payLoad)的長(zhǎng)度杠河,第4個(gè)字節(jié)是int<1>碌尔,表示的是序列號(hào),官網(wǎng)的介紹如下

mysql協(xié)議

例如下面通過(guò)wireShark截取一個(gè)報(bào)文如下
image.png

疑問(wèn)
  • int<3>的類型如果是 [ab cd ef ]券敌,他表示的是十進(jìn)制的哪個(gè)值呢唾戚?
  • 2^32值是4294 967 296即4GB,F(xiàn)F FF FF的值是16 777 215 即16MB待诅,也就是說(shuō)Mysql的一個(gè)數(shù)據(jù)包可以用一個(gè)完整的Buffer保存
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末叹坦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子咱士,更是在濱河造成了極大的恐慌立由,老刑警劉巖轧钓,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件序厉,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡毕箍,警方通過(guò)查閱死者的電腦和手機(jī)弛房,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)而柑,“玉大人文捶,你說(shuō)我怎么就攤上這事∶娇龋” “怎么了粹排?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)涩澡。 經(jīng)常有香客問(wèn)我顽耳,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任射富,我火速辦了婚禮膝迎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘胰耗。我一直安慰自己限次,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布柴灯。 她就那樣靜靜地躺著卖漫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赠群。 梳的紋絲不亂的頭發(fā)上懊亡,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音乎串,去河邊找鬼店枣。 笑死,一個(gè)胖子當(dāng)著我的面吹牛叹誉,可吹牛的內(nèi)容都是我干的鸯两。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼长豁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼钧唐!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起匠襟,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤钝侠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后酸舍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帅韧,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年啃勉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了忽舟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡淮阐,死狀恐怖叮阅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情泣特,我是刑警寧澤浩姥,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站状您,受9級(jí)特大地震影響勒叠,放射性物質(zhì)發(fā)生泄漏镀裤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一缴饭、第九天 我趴在偏房一處隱蔽的房頂上張望暑劝。 院中可真熱鬧,春花似錦颗搂、人聲如沸担猛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)傅联。三九已至,卻和暖如春疚察,著一層夾襖步出監(jiān)牢的瞬間蒸走,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工貌嫡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留比驻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓岛抄,卻偏偏與公主長(zhǎng)得像别惦,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子夫椭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容