91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL的物理存儲結構和session生命周期

發布時間:2020-08-09 05:37:25 來源:ITPUB博客 閱讀:205 作者:caohongfeng666 欄目:MySQL數據庫
  1.  MySQL的物理存儲結構


     (1).數據的組織形式--索引


     (2).數據的row存儲

compact

變長字段的存儲:

可變長度列在評估字段大小時還要考慮存儲列實際長度的字節數。例如,VARCHAR(255)CHARACTER SET UTF8列需要額外的兩個字節來存儲值長度信息,所以該列需要多達767個字節存儲,其實最大可以存儲65533字節,剩余兩個字節存儲長度信息。

行溢出的處理:

數據表Row_format是Compact, innodb默認的approach存儲格式會把每個blob字段的前864個字節存儲在page里,所以blob超過一定數量的話,單行大小就會超過8k ,所以就報錯了。通過對比業務寫成功和失敗的SQL也應征了這個推論,那么現在要怎么解決這個問題?

  • 業務拆分表,大字段進行分表存儲
  • 通過解決Row_format的存儲方式解決問題

    由于業務單表的存儲條數并不大,而且業務邏輯不適合拆分,所以我們要在Row_format上來解決這個問題。

如果blob列值長度 <= 768 bytes,不會發生行溢出(page overflow),內容都在數據頁(B-tree Node);如果列值長度 > 768字節,那么前768字節依然在數據頁,而剩余的則放在溢出頁(off-page)

MySQL的物理存儲結構和session生命周期


所以,此種格式的唯一值索引長度不能超過767


Barracuda

Barracuda文件格式下擁有兩種新的行記錄格式Compressed和Dynamic兩種,新的兩種格式對于存放BLOB的數據采用了完全的行溢出的方式,在數據頁中只存放20個字節的指針,實際的數據都存放在BLOB Page中。Compressed行記錄格式的另一個功能就是存儲在其中的數據會以zlib的算法進行壓縮。

dynamic行格式,列存儲是否放到off-page頁,主要取決于行大小,它會把行中最長的那一列放到off-page,直到數據頁能存放下兩行。TEXT/BLOB列 <=40 bytes 時總是存放于數據頁。可以避免compact那樣把太多的大列值放到 B-tree Node,因為dynamic格式認為,只要大列值有部分數據放在off-page,那把整個值放入都放入off-page更有效。

MySQL的物理存儲結構和session生命周期

變長列

在InnoDB中,變長列( variable-length column )可能是以下幾種情況

  1. 長度不固定 的數據類型,例如 VARCHAR VARBINARY BLOB TEXT
  2. 對于 長度固定 的數據類型,如 CHAR ,如果 實際存儲 占用的空間 大于768Byte ,InnoDB會將其視為變長列
  3. 變長編碼 下的 CHAR


NULL值標識位

指示了該行數據列中是否有NULL值,這個字段的長度和表的列數有關,每一列對應一個bit位




     2. session的執行過程


     

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿巴嘎旗| 新津县| 普兰县| 阳谷县| 综艺| 逊克县| 南部县| 阆中市| 犍为县| 烟台市| 平湖市| 石家庄市| 新平| 陇川县| 华蓥市| 驻马店市| 青龙| 广饶县| 赤城县| 诸城市| 临海市| 民丰县| 淅川县| 山西省| 分宜县| 常德市| 浦北县| 隆子县| 阿合奇县| 石台县| 井冈山市| 射洪县| 常宁市| 芒康县| 辰溪县| 开封市| 泰和县| 游戏| 天水市| 资讯| 资阳市|