|
|
1
56
这种差别对Myisam来说真的很重要,其他的存储引擎不在乎差别。 编辑: 许多用户评论说InnoDB确实关心: link 1 by steampowered , link 2 by Kaan . 使用具有固定宽度行的myisam,有几个优点:
现在固定宽度的主要缺点是浪费了更多的空间。例如,您需要使用char字段而不是varchar字段,因此最终会占用额外的空间。 通常情况下,您在格式上没有太多选择,因为它是根据模式指定的。但是,如果您只有几个varchar或单个blob/text来尝试对此进行优化,那么可能是值得的。例如,考虑将唯一的varchar转换成char,或者将blob拆分成它自己的表。 您可以在以下网址阅读更多有关此的信息: |
|
|
2
10
更新记录时会出现一个关键区别。如果行格式是固定的,则记录的长度没有变化。相反,如果行格式是动态的,并且新数据导致记录长度增加,则使用链接指向“溢出”数据(即,它被称为溢出指针)。 这会使桌子碎裂,通常会减慢速度。有一个命令用于整理碎片(优化表),这在一定程度上缓解了问题。 |
|
|
3
7
MySQL文档中的这个页面似乎与这里的首要答案相矛盾,动态行格式对InnoDB表也有一定意义: http://dev.mysql.com/doc/innodb/1.1/en/innodb-row-format-dynamic.html |
|
|
4
4
固定意味着每一行的大小完全相同。这意味着,如果需要加载数据页上的第三行,它将正好位于pageheader+2*行大小,从而节省了一些访问时间。 为了找到动态记录的开头,必须查询记录偏移量列表,这涉及到额外的间接寻址。 简言之,是的,动态行的性能受到轻微影响。不,不是很大。如果你认为这将是一个问题,测试一下。 |
|
|
5
1
固定的应该比动态的更快、更安全,缺点是有固定的字符长度。 您可以在此处找到此信息: http://dev.mysql.com/doc/refman/5.0/en/static-format.html |
|
|
Thomas Price · Excel查找函数,用于查找结构化表和列 9 年前 |