在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)