我的印象是SQL Server会将nvarchar(n)值存储在内存位置,这些值可以被覆盖,而nvarchar(max)将是指向引用类型变量的指针,因此它是不可变的。
我是对还是错?
我在文档中已经找到了这个,但到目前为止还没找到。
谢谢!
答案 0 :(得分:1)
在NVARCHAR(MAX)
列中存储50个字符并在captcha_url = "https://ercdmd.ru/captcha.php?time=#{Time.now.to_i}000"
列中存储50个字符实际上并没有什么不同。两个值都存储在行中。当行的总大小超过SQL Server的页面大小(8060字节(实际上是8192字节,但每页有一些开销)时,会出现问题。这意味着大约4000个字符(unicode数据是每个2字节) character)数据需要存储在行外。这意味着它存储在其他地方,只剩下24字节的剩余部分,这实际上是保存数据的地址。