【发布时间】:2012-08-29 14:26:54
【问题描述】:
我已经读到 varchar 字段应该作为列放在数据库表的末尾 - 至少在 MySQL 中。原因是 varchar 字段具有可变长度,它可能会减慢查询速度。 我的问题:这是否适用于 MSSQL 2012? 我是否应该将表格设计为在每个数据库行的末尾包含每个文本数据?
【问题讨论】:
-
我不相信这对 MySQL 来说是正确的。是的,它是可变宽度 - 但它在行中的位置有什么不同?
-
的想法是该行可能会在某个时候更新,从而导致数据位于磁盘上其他位置的“链式行”,从而导致更多的磁盘 io... 可能很小,但可能会造成一些有时差异很小
-
@Randy 我不相信 MySQL 有链式行这样的东西。相反,旧行无效,更新的行写在末尾(或空闲位置)。 myisam 和 innodb 的做法不同,但我不相信任何一个都有链式行。然而,链接答案中必须寻找可变长度列的问题很有趣。
标签: mysql sql-server database database-design varchar