新建資料庫表的時候有乙個行格式的選項,
compact
compressed
fixed
dynamic
這些選項分別在什麼時候使用呢?
compact行格式(innodb預設行格式),結構如下
變長字段長度列表,null標誌位,記錄頭資訊,列1資料,列2資料。。。。
這個格式當初的設計是為了能高效存放資料,同時還有兩個隱藏列:事物id列和回滾指標列,如果沒有定義主鍵的話,每行還會增加個rowid列作為隱藏主鍵,6位元組
compressed 格式儲存的行資料會進行zlib演算法壓縮,所以適合儲存blob,text之類的大長度型別的資料
dynamic 格式考慮的是如果乙個較長的資料的一部分需要儲存在溢位頁上,那麼通常最有效的方式就是將所有資料都儲存在溢位頁上。較短的列仍然會存放在btree 節點上,可以減少對任何給定行所需的最少溢位頁的數量。-----適合動態,比如varchar之類的動態長度字段
fixd行格式適合靜態定長型別 如char
mysql行格式 MySQL 行格式
以 mysql 預設的儲存引擎 innodb 為例 innodb 包含以下四種行格式 compact redundant dynamic compressed 指定行格式 create table 表名 列的資訊 row format 行格式名稱 alter table 表名 row format ...
mysql 設定行格式 mysql行格式
最近用phpmyadmin,突然發現有個引數row format,以下是手冊中的解答部分,看了之後水平又提公升了,做個記錄。另外看了這部分之後發現原來mysql儲存變長資料的方法和檔案系統原來一樣啊,都是資料和索引分離,然後一堆碎片和鏈結,哈哈。紅色標出的部分比較重要,很少有人會去關注,提醒大家看下...
mysql 行格式 分割槽方式
innodb邏輯儲存結構 所有資料被邏輯地存放在表空間中,表空間又由段 區 頁 有些文件稱之為塊 行組成。段 常見的段有資料段 回滾段 索引段 與約束這種邏輯概念不同,索引是一種資料結構,不止有邏輯上的概念,在資料庫中還代表著物理儲存的方式。索引段即b 樹的非索引節點 等。innodb由自身完成對段...