• mysql的InnoDB引擎的行记录格式ROW_FORMAT


    mysql中, 若一张表里面不存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫静态表,即该表的row_format是fixed,就是说每条记录所占用的字节一样。其优点读取快,缺点浪费额外一部分空间。

     若一张表里面存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫动态表,即该表的row_format是dynamic,就是说每条记录所占用的字节是动态的。其优点节省空间,缺点增加读取的时间开销。

    row_format还有其他一些值:

    DEFAULT

    FIXED--静态

    DYNAMIC--动态

    COMPRESSED

    REDUNDANT

    COMPACT

    fixed:默认格式,

    当表不包含变长字段(varchar / varbinary / blob / text)时使用,

    每行都是固定的,所以很容易获取行在页上的具体位置,存取效率比较高,

    但是占用磁盘空间较大

    dynamic:

    每行都有一个行头部,包含bitmap,记录列为空的情况。(字符类型长度为0,或数字类型为0,而不是NULL值)

    所有字符串列都是动态存储的,除非长度小于4;

    fixed->dynamic : 会导致CHAR->VARCHAR,反之亦然, 

    MYISAM引擎可以修改ROW_FORMAT,InnoDB不可以,默认Compact

    REDUNDANT为固长,有冗余,COMPACT更灵活

  • 相关阅读:
    CBV进阶(一)
    uva 11748 Rigging Elections
    uva 11573 Ocean Currents(bfs+优先队列)
    无向图的欧拉路
    poj 3254 Corn Fields
    hdu 1114
    hdu 2639 (第k小的01背包)
    uva 1347 tour
    uva 437 The Tower of Babylon
    uva 1025 A Spy in the Metro(动态规划)
  • 原文地址:https://www.cnblogs.com/wzk-0000/p/14412940.html
Copyright © 2020-2023  润新知