成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

雙線服務器響應的不同類型

2021-03-17    分類: 網站建設

雙線服務器響應的不同類型
一旦雙線服務器收到命令,會執(zhí)行命令,然后發(fā)送一個或多個響應包。本篇將討論幾種不同類型的響應。
數(shù)據(jù)域
數(shù)據(jù)域是許多雙線服務器響應包的重要組件。一個數(shù)據(jù)域包括一個長度指定符序列,后面是實際的數(shù)據(jù)值。通過研究sql/pack.c中的net_store_length()定義可以理解長度指定符序列:
雙線服務器響應的不同類型
正如你所看到的,如果length數(shù)值不超過251,那么代碼將它保存在1個字節(jié)中。如果是251字節(jié)以上但裝在兩個字節(jié)中,則代碼為其加上252這個數(shù)值前綴,然后將其寫到接下來的兩個字節(jié)中。如果兩個字節(jié)不夠而4個字節(jié)夠用,則代碼使用253作為代碼,然后以長度占用后面的字節(jié)。如果4個字節(jié)不夠,則代碼使用254作為代碼,然后存儲在8個字節(jié)中。必須注意,代碼后面的所有長度值都低字節(jié)優(yōu)先存儲。
有人可能會問,為什么把1字節(jié)長度限制為251,而net_store_length()中的個保留值卻是252?代碼251具有特殊的含義,它表明代碼后面沒有長度數(shù)值或數(shù)據(jù),且該域的數(shù)值為SQL NULL。
為什么要這么復雜呢?大多數(shù)時候數(shù)據(jù)域都相當短,尤其是,如果一個查詢返回大量記錄或選擇了大量列,那么,響應中將有大量這些內容。在這種情況下,每個域只要浪費1個字節(jié),會積少成多形成龐大的系統(tǒng)開銷。域長度超過250的機會相對較少,但即使是在這種情況下,浪費1字節(jié)也不會引入注意——因為雙線服務器至少已經在發(fā)送253個字節(jié):長度至少占用2字節(jié),域值至少占用251字節(jié)。
緊跟在長度序列后面的是實際數(shù)據(jù)值,該值被轉換為字符串表達式。
OK包
發(fā)送OK包則表示雙線服務器成功執(zhí)行了命令。發(fā)送OK包是對下列命令的響應:
雙線服務器響應的不同類型
這一類型的包括用于不要求返回結構集的命令。然而它的格式卻允許發(fā)送一些額外的狀態(tài)信息,如修改記錄的數(shù)目、自動生成的主鍵數(shù)值、或者字符串格式的狀態(tài)消息。包體的結構收錄在表4-8中。
雙線服務器響應的不同類型
為了從雙線服務器內部發(fā)送OK包,你必須調用send_ok()。
錯誤包
在處理命令時如果發(fā)生錯誤,雙線服務器會以錯誤包進行響應。格式收錄在表4-9中。
對狀態(tài)字節(jié)區(qū)采用7字節(jié)限制的原因是,包體起始處的十進制254字節(jié)可以具有不同的含義:可以使用本篇前文的“數(shù)據(jù)域”中描述的域長度格式來指定結構集中的域的數(shù)目。
為了發(fā)送一個EOF包,雙線服務器會使用send_eof()。
結果集包
大量查詢產生一個結果集,具體例子有SELECT、SHOW、CHECK、REPAIR、EXPLAIN。只要所期望的來自查詢的信息多于簡單的狀態(tài)報告,會返回結果集。結果集包含一系列包。
.包體包括標準長度指定符序列的包,不過目前的數(shù)值含義不一樣,它指的是結果集中的域的數(shù)目。
.一組域描述符包,每個域一個包,采用結果集中的域順序。
.EOF結束包
域描述包的包體格式如表4-11和4-12所示。
雙線服務器響應的不同類型
在發(fā)送各個包的域定義序列之后,雙線服務器接著發(fā)送數(shù)據(jù)的實際行,每行一個包。每行數(shù)據(jù)包包含一系列以標準域數(shù)據(jù)格式存儲的數(shù)值。在報告常規(guī)查詢結果時,域數(shù)據(jù)會轉換為字符串格式。在使用預處理語句(COM_PREPARE)時,域數(shù)據(jù)以本來格式發(fā)送,低字節(jié)優(yōu)先。
在發(fā)送出所有的數(shù)據(jù)行后,以EOF包終止包序列。

網站欄目:雙線服務器響應的不同類型
轉載來源:http://jinyejixie.com/news24/105374.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供響應式網站、軟件開發(fā)、微信小程序、靜態(tài)網站、Google、網站營銷

廣告

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

成都網站建設
错那县| 双牌县| 阳东县| 铜川市| 来安县| 秦安县| 依安县| 西华县| 大方县| 临洮县| 抚宁县| 岳普湖县| 上饶县| 桐庐县| 方城县| 监利县| 宜宾市| 松溪县| 桐庐县| 井陉县| 阆中市| 台州市| 交口县| 山阳县| 缙云县| 四会市| 任丘市| 黄梅县| 潞城市| 全南县| 聂拉木县| 剑阁县| 迁安市| 双峰县| 资阳市| 马边| 乡宁县| 三明市| 启东市| 无棣县| 兖州市|