Posted by:
努力记

努力记,通过记录,计划,让自己的努力可以触碰彩虹!

8,450

Mysql:静态表与动态表

  • 2013-06-17
  • 暂无评论

静态表的特点

  • 默认格式.用在表不包含varchar,blob,text列的时候
  •  所有的char,numeric和decimal列填充到列宽度
  • 非常快
  • 容易缓冲
  • 容易在down后重建,因为记录位于固定的位置
  • 不必被重新组织(用myisamchk),除非是一个巨量的记录被删除并且优化存储大小
  • 通常比动态表需要更多的存储空间

动态表的特点

  • 如果表包含任何varchar,blob,text列,使用该格式
  • 所有字符串列是动态的
  • 每个记录前置一个位.
  • 通常比定长表需要更多的磁盘空间
  • 每个记录仅仅使用所需要的空间,如果一个记录变的很大,它按需要被分成很多段,这导致了记录碎片
  • 如果用超过行长度的信息更新行,行被分段.
  • 在系统down掉以后不好重建表,因为一个记录可以是多段
  • 对动态尺寸记录的期望行长度是3+(number of columns+7)/8+(number of char columns)+packed size of numeric columns+length of strings +(number of NULL columns+7)/8
  • 对每个连接有6个字节的惩罚.无论何时更改引起记录的变大,都有一个动态记录被连接.每个新连接至少有20个字节,因此下一个变大将可能在同一个连接中.如果不是,将有另外一个连接.可以用myisamchk -恶毒检查有多少连接.所有连接可以用myisamchk -r删除.


back up ↑

无觅相关文章插件,快速提升流量