我正在使用SQL Server 2005和2008 R2数据库,并且需要存储可能包含超过50,000个字符的大字符串。目前,我正在使用数据类型
我的问题是
其中一个好处是,我不会将该列用于SQL
所以我的问题是,由于我不打算将此字符串数据用于SQL
希望有人能提供更好的建议!
nvarchar(max)
来存储更大的字符串。我的问题是
nvarchar(max)
在数据库中占用更多的存储空间。我已经测试了100,000条记录,它需要约10 GB的内存来存储100,000条记录。其中一个好处是,我不会将该列用于SQL
Where
查询目的,因此我已决定将数据存储为BLOB数据类型-nvarbinary(max)
。通过这种方式,存储空间减少了50%,也就是说,需要约5 GB的内存来存储100,000条记录。所以我的问题是,由于我不打算将此字符串数据用于SQL
Where
查询目的,我想以任何其他更好的方式存储它,以便数据库大小将减小到5 GB以下。希望有人能提供更好的建议!
Varbinary
,这样会过于繁琐。如果以varbinary
存储可以将存储空间减少50%,我假设这是非Unicode文本,并且很容易适应varchar(max)
。nvarchar
是一个Unicode字符串,每个字符使用2个字节的存储空间。如果您使用varchar
,每个字符只使用1个字节的存储空间(但您将无法在此列中存储阿拉伯语、希伯来语、中文、日语、韩语等文本)。 - marc_s