最佳的 varchar 字段大小
最佳的 varchar 字段大小
我正在设计一个数据库,用来存储不同大小的JSON字符串。我考虑使用不同的表(每个表有两个列,'id'和'data')来存储不同大小的字符串(从tinytext到bigtext)。在这种情况下,每个表都会被搜索,从包含最小字符串大小的表开始。
我还考虑使用一个只有一个字符串大小的单一表,并使用多行来存储大型JSON字符串。
...或者我可以只创建一个具有大VARCHAR大小的表,以节省开发时间。
我正在围绕两个设计要点展开工作:
在某些情况下,MySQL会将小片数据“存储在行内”,以提高性能。这是什么意思,我如何利用这一点?
在某些情况下,MySQL会将VARCHAR处理为其最大可能的大小。什么时候会发生这种情况,我如何避免它?
为什么历史上人们在数据库字段大小上使用255而不是256?
在历史上,人们在数据库中使用255而不是256的原因是为了避免发生错误。尽管计算机是基于二进制的,每个字节可以表示256个不同的值,但在某些情况下,数据库系统需要使用1个字节来存储其他信息,例如字符串的长度或编码方式。因此,为了确保所有数据都可以正确地存储和检索,人们通常将字段的最大大小设置为255而不是256。
然而,如果你正在使用PHP并尝试插入超过1000个字符的字符串,你需要在插入之前在PHP端将其截断到最大列大小,否则会出现错误。这是因为在PHP中,字符串的最大长度默认为1000个字符。如果你尝试插入超过这个限制的字符串,PHP将引发一个错误。因此,在插入之前,你需要手动将字符串截断到数据库字段的最大大小。
总结起来,历史上人们在数据库字段大小上使用255而不是256的原因是为了避免错误。如果你使用PHP并尝试插入超过1000个字符的字符串,你需要在插入之前将其截断到最大列大小,以避免错误。