[英]Disadvantage of choosing large MAX value for varchar or varbinary
在创建varchar或varbinary列时选择max值为max的缺点是什么?
我正在使用MS SQL,但我认为这也与其他dbs相关。
谢谢
这取决于在特定列中存储大量数据是否合理。
如果您声明一个永远不会正确存储大量数据的列(即员工名字作为VARCHAR(1000)),您最终会遇到各种问题
取决于RDBMS。 IIRC,MySql为varchars> 255个字符(跟踪varchar长度)分配2字节开销。 MSSQL <= 2000将允许您分配> 8060字节的行大小,但如果您尝试INSERT或UPDATE实际超过8060字节的行,则会失败。 SQL 2005 [1]允许插入,但会为溢出分配一个新页面并留下指针。 这显然会影响性能。
[1] varchar(max)在某种程度上是一种特殊情况,但如果字段长度> 8000或行> 8060,也会分配溢出页面。这是MSSQL默认值,行为可以随大型类型而变化在数据行选项中。
如果以某种方式获得大量数据(例如来自外部接口)并且您的应用程序不是为处理它而设计,则可能会增加破坏应用程序的风险。
作为一个好的设计,您应该始终将字段的大小限制为实际值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.