【问题标题】:What is the best datatype to use for storing moderate amounts of text in SQL Server (2005)?用于在 SQL Server (2005) 中存储适量文本的最佳数据类型是什么?
【发布时间】:2010-09-17 06:08:06
【问题描述】:

在 SQL Server (2005) 中存储适量文本的最佳数据类型是什么?

例如,想象一个表格,存储有关网站上可用下载的信息。 我想要一个简短的下载标题,比如 varchar(20)。一条路径,比如 varchar(255) 然后我想存储一些关于下载的用户友好文本 - 描述。在某些情况下,它可能和标题一样短,而在其他情况下,您可能需要几段解释。

什么是最好的?大小为 4000 的 varchar,还是 varchar(max) 或其他?

【问题讨论】:

    标签: sql-server-2005 types


    【解决方案1】:

    使用 varchar(max),您可以在其中放置一个巨大的文本,并且它的存储大小会根据需要增加。您可以在 varchar(max) 上拥有 sql group 函数,例如,group by。 或者如果在 SQL 中查找全文搜索,您可以选择文本数据类型

    【讨论】:

    • 在提出问题的上下文中,usman 的回答很好。谢谢。
    【解决方案2】:

    程序描述的 PAD(便携式应用程序描述)规范最高字符限制为 2000 个字符 *请参阅程序描述部分。

    http://www.asp-shareware.org/pad/spec/spec.php

    下载网站提交工具使用此规范使作者更容易提交他们的软件。此外,我认为您可以下载几个遵循 PAD 规范的列表。

    所以我会建议 varchar(2000) 基于我不想存储超过我需要的事实的事实。使用 varchar(max) 记录一条记录就可以了,但是当您拥有数千条记录时,存储成本可能会上升。

    编辑:varchar(max) 可以是 2GB - 1,这就是我要限制它的原因。 http://msdn.microsoft.com/en-us/library/ms176089(SQL.90).aspx

    【讨论】:

    • 感谢您将答案置于 Chris 的上下文中。下载规格信息和 2GB 限制影响了我的决定。你永远不知道这些事情什么时候会成为问题。
    【解决方案3】:

    大小应取决于所存储数据的大小。不要将 varchar (max) 用于只有 2 个字符的状态字段。我通常会查看我期望获得的最大值,然后在确定大小时添加 10-20% 的软糖因子。如果您需要存储 unicode 字符,请不要忘记使用 nvarchar。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-22
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      相关资源
      最近更新 更多