带有 varchar(255) PRIMARY KEY 的表会造成什么损害吗?

2024-04-07

我知道这不是一个好主意,但我想仔细检查一下这不会造成服务器崩溃等疯狂的事情。

CREATE TABLE [dbo].[Items](
    [Id] [nvarchar](255) NOT NULL PRIMARY KEY,
    [Value] [nvarchar](max) NOT NULL,
)

了解像这样的密钥与 [int] 密钥相比如何的详细信息会很有趣,但只要确认这不会损害任何东西就足够了。


可以使用 VARCHAR(#) 作为主键吗?

Yes.
From 文档 http://msdn.microsoft.com/en-us/library/ms176089.aspx, a VARCHAR(255)对于该列,将占用最多 257 (255+2) 个字节(取决于实际数据的长度)——每row.

了解像这样的密钥与INT key

INT占用4个字节,根据文件 http://msdn.microsoft.com/en-us/library/ms187745.aspx。根据您的数据,有一些占用较少空间的数字数据类型:

  • SMALLINT: 2 字节
  • TINYINT: 1 byte

字节数越少,访问列中数据的速度就越快。这包括 JOIN。此外,数据库(和备份)将会更小。

我非常质疑是否需要如此大的VARCHAR作为主键——GUID 甚至没有那么长。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有 varchar(255) PRIMARY KEY 的表会造成什么损害吗? 的相关文章

随机推荐

  • 将图像保存到文件

    我正在开发一个基本的绘图应用程序 我希望用户能够保存图像的内容 我想我应该使用 System Drawing Drawing2D GraphicsState img drawRegion CreateGraphics Save 但这对我保存
  • GWT获取应用程序的路径

    我有一个 GWT 应用程序 当我在运行应用程序后部署本地主页时 其主页为 localhost 8888 myapp html 但当我们将其部署到服务器时 在应用程序运行后其主页为 107 20 239 198 8080 myapp myap
  • 如何使用 3rd 方 SDK 遵循 MVP 架构?

    我看过很多项目展示如何在 MVP 中实现登录 但找不到任何与 Google Facebook 登录相关的内容 当登录流程与Android组件生命周期强绑定时我们该怎么办 我看到 MVP 的主要好处是我们在上面构建了一个抽象Context 但
  • 如何在eclipse中添加sbteclipse插件

    我正在使用 sbt 0 13 我想添加 sbteclipse 插件 以便 eclipse 导入我的 sbt 项目 我可以轻松编写我的 scala 代码 在互联网上搜索时我得到了this https github com typesafehu
  • 我有两个带有相应值的 data.frame 索引向量(行、列),构建新 data.frame 的最快方法是什么?

    我有一个包含 3 列的数据框 df1 其中两个表示新 data frame df2 的索引 其余列包含应放置在 df2 中的值 如果我忽略了正确的答案 我很抱歉 df1 lt data frame row c 1 3 1 2 3 col c
  • GRPC:客户端超时

    我正在尝试让客户端在超时的情况下工作 为此 我修改了 async greeter server cpp 和 async greeter client cpp 文件来测试这个概念 我在客户端 在客户端上下文上 设置截止日期 如果超时 我会等待
  • Flex Box 超出边界? [复制]

    这个问题在这里已经有答案了 Hello I have been trying to make a flex box in CSS like the image below but I have a problem that s look l
  • Django 自定义用户模型和用户管理器

    我正在使用 Django 1 5 构建一个 Web 应用程序 我正在使用带有自定义 UserManager 的自定义用户模型 我遵循 Django 官方文档的说明和示例 现在 当我尝试通过以下方式创建新用户时UserManager crea
  • Codeigniter URL 重定向和路由

    我正在尝试使用 Codeighiter 路由重定向 URL 我无法为以下内容编写路由 如果 URL 带有 api some some我想将其重定向到api some some 否则我想将 URL 重定向到 home index 即如果任何
  • AngularJS 指令不起作用

    请在下面找到我写的指令 angular module netVogue directives directive set First Active function return function scope element attrs a
  • 更快的循环方法(“for”和“foreach”)? [复制]

    这个问题在这里已经有答案了 这个问题源于我问上一个问题的原因foreach循环 我有一个很大的字符串数组 比如说数千个 我想迭代该数组并且还能够根据特定条件进行突破 并且我需要最佳性能 一些示例代码 for int i 0 i lt arr
  • 单击按钮的用户脚本

    我想使用greasemonkey 单击 立即购买 按钮 UserScript name script namespace sc include version 1 require http ajax googleapis com ajax
  • 理解 kubernetes 容器上的“stdin: true tty: true”?

    我已经在网上到处做好了准备 但答案并没有得到彻底的解释 我希望这个问题如果得到解答 可以提供对此事的更新和彻底的解释 为什么有人会使用以下参数定义容器 stdin true tty true Also if docker run it 将执
  • jQuery 将光标向后移动“X”个空格

    我需要它 以便当按下按钮时 光标将 1 找到句子的结尾 2 将光标从句末向后移动 x 多个空格 x为变量 这是一个小提琴 gt jsFiddle http jsfiddle net jcP9q HTML span From the end
  • 时间复杂度单循环与多个顺序循环

    今天 我和我的同事就一个特定的代码片段发生了一场小争论 代码看起来像这样 至少 他想象中是这样的 for int i 0 i lt n i Some operations here for int i 0 i lt m i m is alw
  • 使用 javascript jQuery 突出显示 html 中的文本

    我想以编程方式突出显示 p 标记中的所有关键字 不区分大小写 如果关键字是 var keywords hello thanks goodbye this should be an array p hello world p 你好应该以蓝色突
  • 如何在 C# / winforms 中将图像裁剪为圆形?

    编辑 重复 问题中给出的代码没有为我解决问题 我遇到的主要问题是我不能简单地使用 CSS 和 radius 这很容易 这是在 winforms 页面 项目中加载的图像 我必须尝试将正方形 矩形图像变成圆形 我尝试了以下两种方法 结果将发布在
  • 在 C# 中强制保留两位小数[重复]

    这个问题在这里已经有答案了 我有这个问题 找不到解决方案 这非常简单 我不知道为什么我找不到解决方案 问题 如果一个值返回例如 16 60 在c 中我将读取 16 6 但我也需要0 因为paypal API只接受没有小数的值 或者它必须有小
  • pyproject.toml 没有安装我的包依赖项

    这是我第一次与pyproject toml我的印象是 当你列出包裹时abc作为项目的依赖项之一 该包的依赖项也会被安装 即使它们没有明确列出 这是我目前的pyproject toml build system requires setupt
  • 带有 varchar(255) PRIMARY KEY 的表会造成什么损害吗?

    我知道这不是一个好主意 但我想仔细检查一下这不会造成服务器崩溃等疯狂的事情 CREATE TABLE dbo Items Id nvarchar 255 NOT NULL PRIMARY KEY Value nvarchar max NOT