【问题标题】:What is the best way to store a large amount of text in a SQL server table?在 SQL Server 表中存储大量文本的最佳方法是什么?
【发布时间】:2008-09-26 16:28:22
【问题描述】:

在 SQL Server 的表中存储大量文本的最佳方法是什么?

varchar(max) 可靠吗?

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    在 SQL 2005 及更高版本中,VARCHAR(MAX) 确实是首选方法。 TEXT 类型仍然可用,但主要是为了向后兼容 SQL 2000 及更低版本。

    【讨论】:

      【解决方案2】:

      我喜欢使用 VARCHAR(MAX)(或者实际上是 NVARCHAR),因为它的工作方式类似于标准 VARCHAR 字段。既然是介绍,我尽可能使用它而不是 TEXT 字段。

      【讨论】:

      • 关于 NVARCHAR 的非常好的观点;我的错 - 我应该提到这一点。
      【解决方案3】:

      Varchar(max) 仅在 SQL 2005 或更高版本中可用。这将最多存储 2GB 并且可以被视为常规 varchar。在 SQL 2005 之前,使用“文本”类型。

      【讨论】:

        【解决方案4】:

        根据找到here 的文本,varbinary(max) 是要走的路。您将能够存储大约 2GB 的数据。

        【讨论】:

          【解决方案5】:

          将文本拆分为您的数据库实际可以处理的块。并且,将拆分的文本放在另一个表中。将text_chunk 表中的id 用作原始表中的text_chunk_id。您可能希望表中的另一列保留适合您最大文本数据类型的文本。

          CREATE TABLE text_chunk (
               id NUMBER,
               chunk_sequence NUMBER,
               text BIGTEXT)
          

          【讨论】:

          • 这似乎很重;关于何时需要或适合使用此技术与 nvarchar 的一些上下文,以及成本/收益将提高 asnwer 的质量。
          • 我猜当文本文件超过 2Go 时你需要拆分它?
          【解决方案6】:

          在一个 BLOB 中

          BLOB 是非常大的可变二进制或字符数据,通常是文档(.txt、.doc)和图片(.jpeg、.gif、.bmp),可以存储在数据库中。在 SQL Server 中,BLOB 可以是 text、ntext 或 image 数据类型,可以使用 text 类型

          文字

          可变长度的非Unicode数据,存储在服务器的代码页中,最大长度为231 - 1(2,147,483,647)个字符。

          【讨论】:

            【解决方案7】:

            根据您的情况,可以考虑的另一种设计方案是将它们作为 .txt 文件保存到服务器并将文件路径保存到您的数据库。

            【讨论】:

              【解决方案8】:

              使用nvarchar(max) 将整个聊天对话线程存储在一条记录中。通过插入标记在内容文本中识别每个单独的文本消息(或块)。

              例子:

              {{UserId: Date and time}}<Chat Text>. 
              

              显示时 UI 应该足够智能,可以理解这些标记并正确显示。这样,只要未达到大小限制,一条记录就足以进行一次对话。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2021-12-06
                • 1970-01-01
                • 1970-01-01
                • 2015-07-21
                • 2013-02-04
                • 2013-02-15
                • 2010-09-17
                相关资源
                最近更新 更多