数据库中空值使用的空间

2024-01-03

如果列为空,是否会影响该列使用的空间? 使用的空间是否由列定义固定? 这是否因数据库而异。 (我主要对 SQL Server 2000 感兴趣。)

澄清: 这个问题与列“可为空”时发生的情况无关(正如 Kritsen 和 gbn 指出的那样,这会增加一点成本)。问题是,当列实际上为空(在某些特定行中)时是否有任何保存。

...

Cadaeic 为 SQL Server 提供了答案,在 2008 版本之前,SQL Server 中似乎没有任何节省,而根据 Quassnoi 的说法,如果空列位于末尾,则可以在 Oracle 中节省成本。感谢您的回答,他们都很有帮助。


在列中存储 NULL 不会特别消耗或节省空间。对于固定长度的数据,整个空间仍然保留。

另一方面,可变长度数据只需要数据长度加上存储实际长度的开销。例如,VARCHAR(n)将使用2个字节的数据来指示实际长度,因此所需的存储空间始终为n+2。

此外,应该提到的是,如果 SET ANSI_PADDING ON,则具有 NULL 值的 char(n) 将表现为 VARCHAR(n)。

无论如何,在使用 SQL Server 2000 或 SQL Server 2005 时,您不会认识到存储 NULL 所带来的空间“节省”。SQL Server 2008 引入了稀疏列的概念,这可以为主要为 NULL 的列带来节省。

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

数据库中空值使用的空间 的相关文章

  • Android Realm.io:行/对象不再有效

    这是我的删除功能 它确实找到了workday1 object public static void delete Context context Workday workday Realm realm getRealm context re
  • 如何通过子 POJO 的属性过滤复合 ManyToMany POJO?

    我有两个像这样的房间实体 Entity public class Teacher implements Serializable PrimaryKey autoGenerate true public int id ColumnInfo n
  • MySQL中如何声明变量?

    如何在mysql中声明一个变量 以便我的第二个查询可以使用它 我想写一些类似的东西 SET start 1 SET finish 10 SELECT FROM places WHERE place BETWEEN start AND fin
  • 实现软删除的最佳方法是什么?

    目前在做一个项目 我们要对大部分用户 用户角色 实现软删除 我们决定添加一个is deleted 0 数据库中每个表的字段并将其设置为 1 如果特定用户角色点击特定记录上的删除按钮 现在为了将来的维护 每个SELECT查询需要确保它们不包含
  • 更改列时快速删除并重新创建多个索引、视图、统计信息

    我的 项目 表中有一个 StoreNumber 列 我想将其更改为 NOT NULL 我最近清理了所有旧数据 以便不存在空条目 但是 当我执行以下语句时 由于对各种视图 索引和统计信息的多重依赖 它失败了 ALTER TABLE Proje
  • 使用子查询 select 创建新表

    我试图从子查询选择创建一个新表 但出现以下错误 附近的语法不正确 SELECT INTO foo FROM SELECT DATEPART MONTH a InvoiceDate as CalMonth DATEPART YEAR a In
  • 获取带有计数的不同记录

    我有一张桌子personid and msg列 personid msg 1 msg1 2 msg2 2 msg3 3 msg4 1 msg2 我想得到总计msg对于每个personid 我正在尝试这个查询 select distinct
  • 解析带下划线的 SQL Server 数字文字

    我想知道它为什么有效以及为什么它不返回错误 SELECT 2015 11 Result 11 2015 第二种情况 SELECT 2 1 a a 2 1 检查元数据 SELECT name system type name FROM sys
  • 如何处理数据库中的巨大结果集

    我正在设计一个多层数据库驱动的 Web 应用程序 SQL 关系数据库 用于中间服务层的 Java 用于 UI 的 Web 语言其实并不重要 中间服务层执行数据库的实际查询 用户界面只是要求某些数据 并不知道它是由数据库支持的 问题是如何处理
  • SELECT max(x) 返回 null;我怎样才能让它返回0?

    运行以下命令时如何返回 0 而不是 null SELECT MAX X AS MaxX FROM tbl WHERE XID 1 假设没有XID 1的行 or SELECT coalesce MAX X 0 AS MaxX FROM tbl
  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • mysql自动存储记录创建时间戳

    mysql 有什么方法可以在创建记录时自动将时间戳存储在记录行中 我试图使用时间戳 数据类型 和 current timestamp 作为默认值 但后来意识到每次更新记录时都会更新 我只需要一些可以存储创建时间戳的东西 Thanks Set
  • 无法在 Sqlite3 中添加默认值为 NULL 的 NOT NULL 列

    尝试将 NOT NULL 列添加到现有表时出现以下错误 为什么会发生这种情况 我尝试了 rake db reset 认为现有记录是问题所在 但即使重置数据库后 问题仍然存在 你能帮我解决这个问题吗 迁移文件 class AddDivisio
  • SQL 约束以防止根据列的先前值更新列

    是否可以使用检查约束 或其他一些技术 来防止在更新记录时设置与其先前值相矛盾的值 一个例子是 NULL 时间戳 表明发生了某些事情 例如 file exported 一旦文件被导出并且具有非 NULL 值 就不应再将其设置为 NULL 另一
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • Flutter 中有预填充数据库使用的示例吗?

    Flutter 中有预填充数据库使用的示例吗 我不需要 CRUD 示例 此时我只需要从数据库读取数据即可 我是 Flutter 新手 所以一步一步的教程会很好 您可以将您的应用程序与预填充的 sqlite 数据库捆绑在一起assets文件夹
  • SQL Server 数据库架构版本控制和更新

    对于我的应用程序 我必须支持更新方案 并且数据库可能会受到影响 我希望能够从旧版本更新到最新版本 而无需安装中间版本 例如 假设我有版本 A 最旧的版本 B 中间版本 和 C 新版本 我希望能够将版本 A 直接更新到版本 C 对于应用程序文
  • 使用加权行概率从 PostgreSQL 表中选择随机行

    输入示例 SELECT FROM test id percent 1 50 2 35 3 15 3 rows 你会如何编写这样的查询 平均 50 的时间我可以获得 id 1 的行 35 的时间 id 2 的行 15 的时间 id 3 的行
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • 是否可以引用同一个表中的不同列?

    如果博客有一个 类别 表 如下所示 CREATE TABLE categories id INTEGER PRIMARY KEY AUTO INCREMENT parent id INTEGER NOT NULL name VARCHAR

随机推荐

  • sidekiq_mailer 尝试发送电子邮件时出错

    我将 gem 添加到我的应用程序中sidekiq 2 15 0 和sidekiq mailer 0 0 6 当我尝试发送电子邮件时 我收到 NoMethodError undefined method key for
  • Spring Boot使用多个数据源时如何设置多个连接池?

    我有一个连接到两个独立数据库的 Spring Boot 应用程序 一切正常 我按照the docs https docs spring io spring boot docs current reference html howto dat
  • 用于矩阵向量乘积的 Rcpp Parallel 或 openmp

    我正在尝试对共轭梯度的朴素并行版本进行编程 所以我从简单的维基百科算法开始 我想改变dot products and MatrixVector产品通过其适当的并行版本 Rcppparallel 文档具有以下代码dot product使用并行
  • 运行时错误 - 张量的元素 0 不需要 grad 并且没有 grad_fn

    我正在使用 Unet 模型进行语义分割 我有一个自定义的图像数据集及其掩码 均为 png 格式 我查看了在线论坛并尝试了一些东西 但没有多少效果 任何有关如何解决错误或改进代码的建议都会有所帮助 model eval with torch
  • Javascript |基于连续字母条件的动态字符数组

    我正在做一个代码战争挑战 找不到解决方案 但我真的想知道我们如何解决这个问题 因此 我们得到两个整数 假设 N 和 D 我们应该返回一个包含恰好 N 个字母 n 和恰好 D 个字母 d 的字符串 并且没有三个连续字母相同 例如 如果我们得到
  • 了解 mpreferred-stack-boundary=number

    我正在尝试可视化并理解如何利用 mpreferred stack boundary 更像是构建代码以在学校中利用它 通过阅读 gcc 手册 它指出它根据 mpreferred stack boundary number 对齐堆栈 其中 nu
  • bxslider 指令抛出错误“未捕获类型错误:无法读取未定义的属性‘indexOf’”

    我在我的应用程序中使用 angularjs 为 bxslider 创建了一个指令 以下是指令代码 angular module sbAdminApp directive bxSlider function return restrict A
  • 是否可以阻止 ActiveStorage 删除服务存储上的文件?

    我在用着ActiveStorage处理我的 Rails 应用程序中的附件 更新模型的附件时 它似乎将清除作业排入队列 并删除远程存储服务上以前的附加文件 S3 here 我不想要我的文件S3要系统删除的存储桶 即使我的数据库中没有附加任何记
  • 使用react\stomp仅消费来自RabbitMQ的N条消息,分别确认它们,然后退出

    我正在将 RabbitMQ 与 PHP React stomp 结合使用 我有两个队列 一个是 todo 另一个是 done 消费者读取 todo 完成工作 确认消息 然后将其发布到 done 队列 有什么方法可以确保我只消耗来自 todo
  • ConfigObj 和 ConfigParser 哪个更好?

    哪个更适合为 Python 程序创建设置文件 内置模块 配置解析器 http docs python org library configparser html module ConfigParser 或独立项目 配置对象 http www
  • 使用 C# 下载 Windows 更新

    有没有办法从 C 应用程序中以编程方式下载 Windows 更新 我想在我的应用程序中管理更新的安装 Windows 更新 API 是记录在这里 http msdn microsoft com en us library aa387099
  • 如何重定向到某个网址

    我想在从上一页收集数据后向客户显示另一个页面 但我在服务器端重定向新 URL 时遇到问题 这是我的逻辑 使用 POST 操作将用户输入提交到服务器 服务器运行函数 saveChoice 将用户输入保存到数据库中 保存用户输入后 服务器向客户
  • 如何从我的 video.js 播放器监听“timeupdate”事件?

    虽然我已经能够使用普通 HTML5 播放器监听 timeupdate 事件 但我似乎无法让它与 video js 一起使用 这是我的代码
  • 经典 ASP:如何在经典 ASP 中编写 unicode 字符串数据?

    如何在经典 ASP 网页中显示存储 unicode 数据 使用 zawgyi1 字体输入 的 nvarchar 列 当我检索值并将其写入页面时 它显示 我使用以下元标记将 ASP 页面的内容类型设置为 UTF 8 不幸的是 文本仍然呈现为
  • 在 setuptools 中使用 console_scripts 时出现导入错误

    我正在尝试构建一个名为dnsrep在Python中 我使用setuptools 这样我就可以调用dnsrep不使用命令的模块python dnsrep The setup py我写的脚本如下 from setuptools import s
  • 跨源 Chrome 扩展

    上周左右我一直在阅读和使用 Chrome 扩展 但我在尝试实现我想要的东西时遇到了困难 我想要创建的是一个扩展 它在后台 或默默地 访问网站 在网页上填写表格并检索响应 该网站没有 API 我无法创建服务器来执行此操作 因为该网站每小时只允
  • 在浏览器中访问 webpack 捆绑的库

    我在从浏览器访问 webpack 捆绑库时遇到问题 示例 我有一节课Foo foo js use strict export default class Foo constructor var bar bar Foo被导入到src js s
  • 创建对象时出现 TypeInitializationException 异常

    我有一个程序集 Net 3 5 中的类库项目 其中有一些引用 例如System Configuration and System Web 我在网络应用程序上使用它并且运行良好 现在 我需要引用 Windows 窗体项目 但我无法理解发生了什
  • GOF 与 CQRS 中命令模式的含义

    当查看命令模式时 发现了细微的差异 也许有些人能够更清楚地说明这一点 当查看 Gang Of Four 时 它说每个命令都有一个Execute方法参见例如 http www blackwasp co uk Command aspx http
  • 数据库中空值使用的空间

    如果列为空 是否会影响该列使用的空间 使用的空间是否由列定义固定 这是否因数据库而异 我主要对 SQL Server 2000 感兴趣 澄清 这个问题与列 可为空 时发生的情况无关 正如 Kritsen 和 gbn 指出的那样 这会增加一点