技术解析

设计数据库表结构的字段类型时候, varchar(?) 里面的数字怎么确定?
0
2021-06-03 18:55:20
idczone

看到之前公司的 DB 里,这些值应该是随便设的,

有很多数值: 100,125, 128,255,256,510,512,522...

现在需要规范一下,

现在这美国服务器个数值一般怎么确定?


根据实际情况来呀。。。

1.有很多东西,最大长度是有规范可查的,比如 URL 最大长度、路径最大长度、身份证最大长度、电话号码最大长度等等。
2.没有规范的,以及与业务相关的,建议先与业务人员、产品经理进行讨论。然后,在设备性能富足的情况下,尽量给讨论后定下的容量多加 50% ~ 200%。多留余量肯定没错。

全部 128

说的对,主要根据业务。 当需要留富足的时候,如果接近 255 可以用 255,在某些数据库的某些引擎下,255 是一个临界值,会有一丢丢好处。

直接 LONGTEXT 干,后面有问题再优化

varchar 定义的长度的单位是字符。
<= 255 的,就用 255 。
原因是,varchar 底层存储需要有一个字节来记录字符数量,一个字节最多可以表示 255,大于 255 就需要有两个字节来表示。
> 255 的按照实际情况来。

是不是> 255 的就用 varchar(511) ?

你去看看 psql 定义的几个大小,挑合适的就好

为啥时 511 ? 2 个字节 2^8 是 65536 - 1 65535 啊?所以 varchar 最大是 varchar(65535)

写错了,2^8 => 2^16

如果 256 < x < 512, 那就设置 varchar(512-1)? 需要减掉 1,512=2^8

能 255 内的就 255,按照字段的最大值+50%~200%的余量。
varchar 在超过 255 的时候需要有两个字节的头部用于存储字符长度(类似于 TEXT ),低于 255 的时候只需要一个字节(类似于 TINYTEXT )
需要长文本的一般都是用非关数据库存储或者专门的 CMS 系统里。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服