mysql varbinary charindex_sql中varchar的最大长度

在MySQL中,一行的最大大小为64KB(65535)。

我不了解TSQL,所以做了一些研究:

在SQL Server 2000和SQL Server 7中,行的大小不能超过8000个字节。这意味着VARBINARY列只能存储8000个字节(假设它是表中的唯一列),VARCHAR列最多可以存储8000个字符,而NVARCHAR列最多可以存储4000个字符(每个Unicode字符2个字节)。此限制源于SQL Server用于将数据保存到磁盘的8 KB内部页面大小。

要将更多数据存储在一个列中,您需要使用TEXT,NTEXT或IMAGE数据类型(BLOB),这些数据类型存储在8 KB数据页的集合中,这些数据页与在其中存储其他数据的数据页是分开的同一张桌子。这些数据页以B树结构排列。 BLOB很难使用和操纵。它们不能在过程或函数中用作变量,并且不能在字符串函数(如REPLACE,CHARINDEX或SUBSTRING)内部使用。在大多数情况下,您必须使用READTEXT,WRITETEXT和UPDATETEXT命令来操作BLOB。

为了解决此问题,Microsoft在SQL Server 2005中引入了VARCHAR(MAX),NVARCHAR(MAX)和VARBINARY(MAX)数据类型。这些数据类型可以容纳相同数量的数据,BLOB可以容纳(2 GB),它们分别是存储在用于其他数据类型的相同类型的数据页中。当MAX数据类型中的数据超过8 KB时,将使用溢出页面。 SQL Server 2005自动为页面分配一个溢出指示器,并且知道如何像处理其他数据类型一样操作数据行。您可以在存储过程或函数中声明MAX数据类型的变量,甚至将它们作为变量传递。您也可以在字符串函数中使用它们。

Microsoft建议在SQL Server 2005中使用MAX数据类型代替BLOB。实际上,在SQL Server的将来版本中不建议使用BLOB。

http://www.teratrax.com/articles/varchar_max.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值