看到之前公司的 DB 里,这些值应该是随便设的,
有很多数值: 100,125, 128,255,256,510,512,522...
现在需要规范一下,
现在这个数值一般怎么确定?
1
akira 2021-04-24 13:08:55 +08:00
根据实际情况来呀。。。
|
2
gBurnX 2021-04-24 13:21:27 +08:00
1.有很多东西,最大长度是有规范可查的,比如 URL 最大长度、路径最大长度、身份证最大长度、电话号码最大长度等等。
2.没有规范的,以及与业务相关的,建议先与业务人员、产品经理进行讨论。然后,在设备性能富足的情况下,尽量给讨论后定下的容量多加 50% ~ 200%。多留余量肯定没错。 |
3
fiypig 2021-04-24 13:32:12 +08:00 via iPhone
全部 128
|
4
Muninn 2021-04-24 13:46:10 +08:00
@gBurnX 说的对,主要根据业务。 当需要留富足的时候,如果接近 255 可以用 255,在某些数据库的某些引擎下,255 是一个临界值,会有一丢丢好处。
|
5
h82258652 2021-04-24 13:46:17 +08:00
直接 LONGTEXT 干,后面有问题再优化
|
6
ired 2021-04-24 16:33:03 +08:00 1
varchar 定义的长度的单位是字符。
<= 255 的,就用 255 。 原因是,varchar 底层存储需要有一个字节来记录字符数量,一个字节最多可以表示 255,大于 255 就需要有两个字节来表示。 > 255 的按照实际情况来。 |
8
caliburn1994 2021-04-24 17:18:49 +08:00 via Android
你去看看 psql 定义的几个大小,挑合适的就好
|
9
ired 2021-04-24 18:09:56 +08:00
@zealinux 为啥时 511 ? 2 个字节 2^8 是 65536 - 1 65535 啊?所以 varchar 最大是 varchar(65535)
|
11
zealinux OP @ired 如果 256 < x < 512, 那就设置 varchar(512-1)? 需要减掉 1,512=2^8
|
12
clf 2021-04-25 10:19:53 +08:00
能 255 内的就 255,按照字段的最大值+50%~200%的余量。
varchar 在超过 255 的时候需要有两个字节的头部用于存储字符长度(类似于 TEXT ),低于 255 的时候只需要一个字节(类似于 TINYTEXT ) 需要长文本的一般都是用非关数据库存储或者专门的 CMS 系统里。 |