有效电子邮件地址的最大长度是多少?它是由任何标准定义的吗?
您经常会看到数据库字段设置为255个字符,传统/历史原因是什么?我认为它与分页/内存限制和性能有关,但255和256之间的区别总是让我感到困惑.
varchar(255)
Run Code Online (Sandbox Code Playgroud)
考虑到这是容量或幅度,而不是索引器,为什么255优先于256?是为某种目的保留的字节(终止符还是null或其他)?
推测varchar(0)是无意义的(零容量)?在这种情况下,2 ^ 8的空间应该是256?
是否有其他量级可以提供性能优势?例如,varchar(512)的性能低于varchar(511)或varchar(510)?
对于所有新旧关系数据库,此值是否相同?
免责声明 - 我是开发人员而不是DBA,我使用适合我的业务逻辑的字段大小和类型,但我想知道这种偏好的历史原因,即使它不再相关(甚至是更多,如果它仍然相关).
感谢您的回答,似乎有一些共识认为一个字节用于存储大小,但这并不能在我的脑海中明确解决问题.
如果元数据(字符串长度)存储在相同的连续内存/磁盘中,则有一定意义.1个字节的元数据和255个字节的字符串数据非常适合彼此,并且适合256个连续的存储字节,这可能是整洁的.
但是......如果元数据(字符串长度)与实际字符串数据(可能在主表中)分开存储,那么将字符串数据的长度约束一个字节,只是因为它更容易只存储1个字节的整数元数据似乎有点奇怪.
在这两种情况下,它似乎都是一个微妙的可能取决于数据库的实现.使用255的做法似乎相当普遍,所以某个地方的人必须在一开始就为它辩护一个好的案例,有人能记住那个案例是什么吗?程序员在没有理由的情况下不会采用任何新的做法,这必须是新的一次.
我正在使用十进制列来存储数据库中的货币值,而今天我想知道要使用的精度和规模.
因为据说固定宽度的char列效率更高,我认为对于十进制列也是如此.是吗?
我应该使用什么精度和规模?我正在考虑精确24/8.这有点矫枉过正,还不够或没问题?
这就是我决定做的事情:
DECIMAL(19,4)我不认为转换率的浮点数是一个问题,因为它主要用于参考,我将把它转换为十进制.
谢谢大家的宝贵意见.
我有一个简单的webform,允许未经身份验证的用户输入他们的信息,包括姓名.我给名字字段限制了50个字符,以便与我的数据库表一致,其中字段是varchar(50),但后来我开始怀疑.
使用像Text列类型这样的东西更合适,还是应该将名称的长度限制在合理的范围内?
我正在使用SQL Server 2005,以防您的回复中的问题.
编辑:我没有看到关于类似问题的更广泛的问题.
我认识到电子邮件地址基本上可以无限长,所以我在varchar电子邮件地址字段上施加的任何大小都是任意的.但是,我想知道"标准"是什么?你们有多长时间制作它?(姓名字段的相同问题......)
更新:显然,电子邮件地址的最大长度为320(<= 64名称部分,<= 255域).你用这个吗?
我正在寻找将电子邮件地址存储到mysql表中的最正确的字段类型和大小.
我最初考虑varchar 255,但我认为255可能是太多甚至太少,我能够捕获所有有效的电子邮件地址的平均大小是多少?
除了数据总量的增加之外,表中是否有大量列的性能成本?如果是这样,将表分成几个较小的表可以帮助解决这个问题吗?
是否有与存储公司/企业名称相关的 varchar 长度标准?
我到处找,找不到答案。
如果没有,涵盖大多数场景的理想长度是多少?
可能重复:
数据库字段的标准长度列表
这很简单,数据库中用户允许的"全名"的典型长度应该是多少?
当我创建users表时,我通常将其设置为varchar 31或32(根据性能).你们有什么用,什么是标准/典型的惯例.
旁注:我从未在电子邮件长度(因为我设置了254)和密码(哈希,32长度)方面遇到问题.