栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

MySQL行格式:固定和动态之间的区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL行格式:固定和动态之间的区别?

差异实际上仅对MyISAM至关重要,其他存储引擎并不关心该差异。 编辑:
许多用户评论InnoDB确实在乎:链接1由steampowered,链接2由Kaan。

使用具有固定宽度的行的MyISAM,有一些优点:

  1. 没有行碎片:可变宽度的行可以将单个行拆分为整个数据文件的多个部分。这会增加磁盘查找次数并减慢操作速度。可以使用OPTIMIZE TABLE对其进行碎片整理,但这并不总是可行的。

  2. 数据文件指针大小:在MyISAM中,有一个数据文件指针的概念,当它需要引用数据文件时使用。例如,当索引引用该行实际存在的位置时,将在索引中使用此方法。对于固定的宽度大小,此指针基于文件中的行偏移量(即,行的大小为1、2、3)。如果宽度可变,则指针基于字节偏移量(即行可能是1、57、163)。结果是对于大型表,指针需要更大,这可能会增加表的开销。

  3. 在腐败的情况下更容易修复。由于每一行的大小相同,因此如果MyISAM表损坏,则修复起来容易得多,因此,您只会丢失实际损坏的数据。在理论上,使用可变宽度时,可变宽度指针可能会被弄乱,这可能导致以不良方式存储数据。

现在,固定宽度的主要缺点是浪费更多的空间。例如,您需要使用CHAR字段而不是VARCHAR字段,因此最终会占用额外的空间。

通常,格式不会有太多选择,因为它是根据模式决定的。但是,如果您只有几个varchar或单个blob
/文本来尝试对此进行优化,则可能是值得的。例如,考虑将唯一的varchar切换为char,或将blob拆分为它自己的表。

您可以在以下位置了解更多信息:

http://dev.mysql.com/doc/refman/5.0/en/static-
format.html

http://dev.mysql.com/doc/refman/5.0/en/dynamic-
format.html



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/411729.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号