|
|
1
4
我的建议是:把它们做得和你真正需要的一样大。
如果你真的需要一个非常大的字段,请使用NVARCHAR/VARCHAR(MAX)——只要它们适合,它们就会存储在你的页面中,如果它们太大,就会被发送到“溢出”存储。
但是:NVARCHAR在任何时候都会占用两倍的空间——磁盘和SQL Server内存。如果你真的需要它,你就需要它——但你呢 马克 |
|
|
2
3
我个人不使用nvarchar:-)我总是使用varchar。 然而,我倾向于用100作为名字,1000作为评论。捕获和处理较长的字符串是客户端可以做的事情,比如通过正则表达式,所以SQL只会得到它所期望的数据。
SQL Server的255“限制”可以追溯到6.5,因为vachar限制为255。SQL Server 7.0+更改为8000,并添加了对unicode的支持 编辑: 为什么我不使用nvarchar:双倍内存占用、双倍索引大小、双倍磁盘大小,根本不需要它。我为一家在全球设有办事处的瑞士大公司工作,所以我不是狭隘的。 这里也讨论了: varchar vs nvarchar performance
|
|
|
3
0
这取决于该字段代表什么。如果我正在做一个快速原型,我会保留默认值255。对于评论等,我可能会把它定在1000。
|
|
|
4
0
对于需要有一定限制的列,如姓名、电子邮件、地址等,你应该设定一个合理的最大长度。例如,超过50个字符的名字似乎有点可疑,超过这个大小的输入可能会包含更多的名字。但对于数据库的初始设计,请考虑
尺寸合理,加倍
。因此,对于名字,将其设置为100(如果100是你的“合理大小”,则设置为200)。然后将应用程序投入生产,让用户玩足够长的时间来收集数据,然后检查实际数据
对评论也这样做;将它们设置为
|
|
|
developer · 带外键的SQL表设计 1 年前 |
|
|
relatively_random · 确保两个表之间一致的共同参考 1 年前 |
|
|
b126 · 在两种不同的Oracle模式上执行相同查询的速度差异很大 2 年前 |
|
|
robertspierre · 在多对多关系中自动删除未引用的行 2 年前 |
|
|
Michael Samuel · MYSQL在以下情况下自动创建索引 8 年前 |