天天看点

Mysql学习记录 | 第三篇:InnoDB行存储格式(compact)之VARCHAR(M)和行溢出

COMPACT????????????VARVHAR(M)

compact?????????????????????????????????????????????????????????????????????NULL??????????????????????????????NOT NULL?????????????????????????????????????????????????????????????????????????????????1???????????????2????????????????????????????????????2???16??????-1??????65535????????????NULL????????????????????????1????????????

????????????(???????????????NULL)???c1?????????not null???

CREATE ??TABLE varchara_size_demo(

?? ?? ?? c1 VARCHAR(65535)

)CHARSET =ascii ROW_FORMAT=COMPACT;

??????????????????????????????65535???????????????????????????????????????????????????????????????????????????????????????NULL

Mysql学习记录 | 第三篇:InnoDB行存储格式(compact)之VARCHAR(M)和行溢出

???????????????c1????????????65532???

????????????????????????????????????????????????65535-1???NULL???????????????1????????????-2???????????????????????????2????????????

CREATE ??TABLE varchara_size_demo(

???? ??c1 VARCHAR(65532)

)CHARSET =ascii ROW_FORMAT=COMPACT;

Mysql学习记录 | 第三篇:InnoDB行存储格式(compact)之VARCHAR(M)和行溢出

????????????(??????????????????NULL)?????????c1???not null???

?????????????????????????????????????????????65535-2???????????????????????????2???????????????????????????NULL???????????????????????????????????????????????????65533???

CREATE TABLE ?? varchara_size_demo(

c1 VARCHAR(65533) NOT NULL

)CHARSET =ascii ROW_FORMAT=COMPACT;

Mysql学习记录 | 第三篇:InnoDB行存储格式(compact)之VARCHAR(M)和行溢出

?????????

?????????????????????16kb????????????16384(16*1024)??????????????????VARCHAR???????????????????????????65532?????????????????????????????????????????????????????????????????????????????????????????????????????????

?????????????????????

  • Mysql?????????????????????????????????????????????
  • ????????????????????????????????????????????????????????????????????????136?????????????????????
  • ?????????????????????????????????27?????????

?? ?? ?? 1. 2?????????????????????????????????

?? ?? ?? 2. 1?????????????????????????????????NULL???

?? ?? ?? 3. 5????????????row_id???

?? ?? ?? 4. 6????????????tansaction_id???

?? ?? ?? 5. 7????????????roll_pointer???

?????????????????????????????????????????????N?????????????????????????????????????????????????????????

136+2*???27+N??? >?? 16384

??????N > 8098??????????????????????????????????????????8098??????????????????????????????????????????????????????????????????????????????????????????

??

??????

  • ??????VARCHAR??????????????????NOT NULL??????????????????????????????65532????????????????????????????????????????????????????????????2????????????NULL?????????????????????1?????????
  • ??????VARCHAR?????????NOT NULL???????????????????????????65533?????????????????????????????????????????????????????????????????????????????????NULL????????????1?????????

??

继续阅读