【问题标题】:Best SQL type for 2000 characters2000 个字符的最佳 SQL 类型
【发布时间】:2013-06-06 13:04:23
【问题描述】:

我有一个表,其中有一列名为 X509 ,我使用此函数了解如何操作 许多字符都有存储的值:

select distinct  LEN (x509certificate)   from ctrc     

这个语句返回了我这些值:

  2112
  2732
  2748
  2800

我需要在此列中保存从 2112(min) 到 2800(max) 个字符的值,该表使用 NVARCHAR(max) 或 nvarchar 长度 -1。这种数据最好的sql类型是什么???

感谢亚历杭德罗

【问题讨论】:

    标签: sql sql-server sql-server-2008 tsql


    【解决方案1】:

    如果您的意思是存储证书本身的最佳列类型是什么,X509 证书没有固定长度,使用 nvarchar 是正确的选择,并且 nvarchar(MAX) 或例如与尝试正确获取确切的长度要求相比,nvarchar(maxlength * 2) 对数据库的性能影响基本上为零。

    如果您的意思是最适合存储 LEN 计算的结果,那么常规的 int 列就可以了。 tinyint 也可以,但是如果您考虑性能或存储问题,除非您存储数十亿行,否则差异将低于您维护/记忆的心理成本。

    总之,“保持简单”:)

    【讨论】:

      【解决方案2】:

      你可以这样做:

      ALTER TABLE ctrc ADD [cert_length] as LEN (x509certificate);
      

      SQL Server 将为列使用合适的大小。

      如果您谈论证书,那么 NVARCHAR(MAX) 就可以了。如果您没有更改任何表选项并且页面中仍有足够的空间,SQL Server 甚至会在行中存储 (N)VARCHAR(max) 列。

      【讨论】:

        【解决方案3】:

        我认为 varchar(max) 是长度未知的字符串的最佳数据类型。

        有关更多详细信息,您可以通过此链接: http://www.dotnetspider.com/forum/158173-Difference-between-Varchar-nvarchar.aspx

        【讨论】:

          猜你喜欢
          • 2010-11-19
          • 2010-09-22
          • 1970-01-01
          • 2015-10-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-08
          • 1970-01-01
          相关资源
          最近更新 更多