在SQL Server表中存储大量文本的最佳方法是什么?
时间:2020-03-06 14:47:38 来源:igfitidea点击:
在SQL Server的表中存储大量文本的最佳方法是什么?
varchar(max)是否可靠?
解决方案
在SQL 2005及更高版本中,VARCHAR(MAX)确实是首选方法。 TEXT类型仍然可用,但主要是为了与SQL 2000及更低版本向后兼容。
我喜欢使用VARCHAR(MAX)(或者实际上是NVARCHAR),因为它的工作方式类似于标准VARCHAR字段。自从介绍以来,我尽可能使用它而不是TEXT字段。
在BLOB中
BLOB是非常大的可变二进制或者字符数据,通常是文档(.txt,.doc)和图片(.jpeg,.gif,.bmp),它们可以存储在数据库中。在SQL Server中,BLOB可以是text,ntext或者image数据类型,可以使用text类型
文本
可变长度的非Unicode数据,存储在服务器的代码页中,最大长度为231 1(2,147,483,647)个字符。
根据此处找到的文本,可以使用varbinary(max)。我们将能够存储大约2GB的数据。
Varchar(max)仅在SQL 2005或者更高版本中可用。这将存储多达2GB的空间,可以视为常规的varchar。在SQL 2005之前,请使用"文本"类型。
将文本拆分成数据库可以实际处理的块。然后,将拆分后的文本放在另一个表中。将" text_chunk"表中的" id"用作原始表中的" text_chunk_id"。我们可能希望表中的另一列保留适合最大文本数据类型的文本。
CREATE TABLE text_chunk ( id NUMBER, chunk_sequence NUMBER, text BIGTEXT)