Php 是否有固定长度版本的MySQL';存储超过255个字符的字符数据类型?

Php 是否有固定长度版本的MySQL';存储超过255个字符的字符数据类型?,php,mysql,char,Php,Mysql,Char,我知道VARCHAR,TEXT等,但我希望有一个固定宽度的东西,因为我重视效率的提升,即使它很小。我似乎在中找不到任何内容,我唯一的另一个选择是将消息拆分为多个部分,并将每个部分存储在单独的列中 不,没有这样的数据类型。您是否实际测量了使用CHAR代替VARCHAR是否会带来可测量的性能增益?还记得他们说的过早优化吗 将消息拆分为多个列,然后将其缝合在一起可能比使用CHAR而不是VARCHAR提高速度要慢。您的问题还不清楚。如果要存储超过255个字符,为什么不使用TEXTtype?如果您需要25

我知道
VARCHAR
TEXT
等,但我希望有一个固定宽度的东西,因为我重视效率的提升,即使它很小。我似乎在中找不到任何内容,我唯一的另一个选择是将消息拆分为多个部分,并将每个部分存储在单独的列中

不,没有这样的数据类型。您是否实际测量了使用CHAR代替VARCHAR是否会带来可测量的性能增益?还记得他们说的过早优化吗


将消息拆分为多个列,然后将其缝合在一起可能比使用CHAR而不是VARCHAR提高速度要慢。

您的问题还不清楚。如果要存储超过255个字符,为什么不使用
TEXT
type?如果您需要255的固定宽度,为什么不使用
VARCHAR(255)
?@sonnb:可能是因为文本没有与其他字段一起存储,而且访问它实际上更慢?@Mchl:是的。它比具有特定长度的
VARCHAR
类型慢。但对于非特定长度的字段,这是一个不错的选择。对不起,什么?你不能有未指定长度的VARCHAR…啊,好的。谢谢你的帮助。我知道过早的优化是不好的;我希望找到一种适合我需要的数据类型,这样我就可以将表设计成一个固定宽度的表。我知道这还为时过早,但我也读到固定宽度的表格更稳定,不会出现太多碎片。非常感谢。只有更新行,使新消息比旧消息长,才会出现碎片。碎片也会发生在许多不同的情况下(如删除行),您应该查阅存储引擎的文档,了解如何处理碎片。