中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

【MYSQL】InnoDB行溢出數(shù)據(jù)說明-創(chuàng)新互聯(lián)

&nbs

創(chuàng)新互聯(lián)公司是一家專業(yè)提供梅列企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、做網(wǎng)站、H5場景定制、小程序制作等業(yè)務(wù)。10年已為梅列眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進(jìn)行中。p;   首先說下MySQL數(shù)據(jù)庫的varchar字段,真的很實用,它可以存放65536字節(jié)的數(shù)據(jù),比oracle和sqlserver大多了,但是在使用varchar時也有幾點要注意;
    1、65536只是這么說,要建表的時候指定一個字段65536仍然會報錯,因為字段本身還有其他開銷,實際只能存放65532字節(jié)。
    2、65532字節(jié)并不是每個varchar字段都可以設(shè)置的,他是一個總和,也就是說如果有2個varchar字段的表,那么每個varchar字段只能設(shè)置65532/2的值。
    3、建表時要注意編碼格式哦,varchar(65532)代表的是字節(jié)數(shù),如果使用GBK或者UTF-8那就無法建立成功了,因為GBK一個字符占用2字節(jié),UTF-8一個字符占用3字節(jié)
    以上概念比較簡單,大家建個表試驗一下就好,這里不再做實驗;大家知道,頁(PAGE)是innoDB存儲引擎的最小存儲單位,默認(rèn)大小為16KB,及16384字節(jié),行數(shù)據(jù)存儲在頁中;那么一行數(shù)據(jù)如果超過了一個頁能夠存儲的大小怎么辦?比如上面說的varchar(65532),65532字節(jié)該如何存儲?這個時候就會發(fā)生行溢出。
行溢出
    InnoDB存儲引擎可以將一條記錄中的某些數(shù)據(jù)存儲在真正的數(shù)據(jù)頁面之外,一般為BLOB\LOB這類的大對象列類型。但是也不是絕對,BLOB可以不將數(shù)據(jù)放在溢出頁面,而且即便是VARCHAR列數(shù)據(jù)類型,依然有可能被存放為行溢出數(shù)據(jù),比如上例
    我們執(zhí)行:insert into 表名 select repeat('a',65532),就將一行65532字節(jié)的數(shù)據(jù)插入到表中了,實際上在底層,真正的數(shù)據(jù)頁只存儲了一小部分?jǐn)?shù)據(jù),之后是偏移量,指向行溢出數(shù)據(jù),這時會產(chǎn)生N個未壓縮的二進(jìn)制大對象頁 Uncompressed BLOB Page,這些大對象頁中才是完整存放了65532字節(jié)的數(shù)據(jù)。
    那么,一行數(shù)據(jù)為多大時,會發(fā)生行溢出呢?我們知道InnoDB存儲引擎表是索引組織的,即B+樹結(jié)構(gòu),這樣一個頁中至少要保證有2條數(shù)據(jù),否則就變成鏈表了,如果只能存放一條數(shù)據(jù),那么InnoDB存儲引擎會自動將它存放在溢出頁中。如果可以在一個頁中至少放入兩行數(shù)據(jù),那么就不會發(fā)生行溢出

    其實對于BLOB類型的數(shù)據(jù),跟varchar也是一個道理,要看實際的大小,當(dāng)然,用戶既然使用了blob列類型,一般不可能存放長度過小的數(shù)據(jù),因此在大多數(shù)情況下BLOB的行數(shù)據(jù)還是會發(fā)生行溢出,實際數(shù)據(jù)保存在BLOB頁中,數(shù)據(jù)頁只保存數(shù)據(jù)的前768字節(jié)。

文章標(biāo)題:【MYSQL】InnoDB行溢出數(shù)據(jù)說明-創(chuàng)新互聯(lián)
新聞來源:http://www.rwnh.cn/article38/ccigsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、響應(yīng)式網(wǎng)站網(wǎng)頁設(shè)計公司、關(guān)鍵詞優(yōu)化、網(wǎng)站營銷、電子商務(wù)

廣告

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

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
凤山市| 益阳市| 武隆县| 宣汉县| 察雅县| 张家界市| 富顺县| 南溪县| 崇义县| 张家港市| 石阡县| 咸阳市| 电白县| 屏东市| 阜新| 长阳| 梁平县| 大洼县| 改则县| 银川市| 临猗县| 神农架林区| 河间市| 高邑县| 莲花县| 怀集县| 图们市| 吉安县| 大理市| 涟水县| 鹤山市| 德阳市| 厦门市| 阿巴嘎旗| 葵青区| 霍州市| 广饶县| 吉木萨尔县| 临泉县| 攀枝花市| 清丰县|