Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使表真正变大的列数是多少?_Sql Server_Database Design - Fatal编程技术网

Sql server 使表真正变大的列数是多少?

Sql server 使表真正变大的列数是多少?,sql-server,database-design,Sql Server,Database Design,我的数据库中有两个表,一个用于登录,另一个用于用户详细信息(数据库不仅仅是两个表)。登录表有12列(Id、电子邮件、密码、电话号码…),用户详细信息有23列(工作、城市、性别、联系人信息…)。这两个表具有一对一的关系 我正在考虑创建一个包含两个表的列的表,但我不确定,因为这可能会使表的大小变大 这就引出了我的问题,使表变大的列数是多少?是否有一个特定的或近似的数字使表的大小变大,并使我们停止向表中添加列而创建另一个列?或者由程序员决定这样的数量?使我们停止向SQL中的现有表添加列的约束条件是,如

我的数据库中有两个表,一个用于登录,另一个用于用户详细信息(数据库不仅仅是两个表)。登录表有12列(Id、电子邮件、密码、电话号码…),用户详细信息有23列(工作、城市、性别、联系人信息…)。这两个表具有一对一的关系

我正在考虑创建一个包含两个表的列的表,但我不确定,因为这可能会使表的大小变大


这就引出了我的问题,使表变大的列数是多少?是否有一个特定的或近似的数字使表的大小变大,并使我们停止向表中添加列而创建另一个列?或者由程序员决定这样的数量?

使我们停止向SQL中的现有表添加列的约束条件是,如果我们超过了数据库引擎可以为单个表支持的最大列数。可以看出,对于SQLServer,非宽表为1024列,宽表为30000列


35列对于一个表来说并不是特别多的列。

使我们停止在SQL中向现有表添加列的约束条件是,如果我们超过了数据库引擎可以为单个表支持的最大列数。可以看出,对于SQLServer,非宽表为1024列,宽表为30000列


35列对于一个表来说不是特别多的列。

列的数量实际上不是一个问题。您似乎担心的任何类型的性能问题都可以归因于表中数据的大小。也就是说,如果表有数十亿行,或者其中一列的每一行都包含200 MB的XML数据,等等

通常,由大量列引起的唯一问题是它与索引的关系,因为试图创建100个不同的索引来覆盖每个查询的每个变体可能会很麻烦


这里的重点是,我们不能真正给你任何建议,因为仅仅表、列和关系的数量是不够的。它可能是完美的,也可能不是。真正重要的是数据的性质,以及如何通过适当的规范化、索引和统计来解释数据。

列的数量实际上不是一个问题。您似乎担心的任何类型的性能问题都可以归因于表中数据的大小。也就是说,如果表有数十亿行,或者其中一列的每一行都包含200 MB的XML数据,等等

通常,由大量列引起的唯一问题是它与索引的关系,因为试图创建100个不同的索引来覆盖每个查询的每个变体可能会很麻烦


这里的重点是,我们不能真正给你任何建议,因为仅仅表、列和关系的数量是不够的。它可能是完美的,也可能不是。真正重要的是数据的性质,以及如何通过适当的规范化、索引和统计来解释数据。

分解表(按列拆分)可能是可取的,原因有很多。初学者应该学习的首要原因之一是数据规范化。数据规范化与性能没有直接关系,尽管规范化数据库有时会比构建较差的数据库表现更好,尤其是在负载下

规范化的前三个步骤将产生第1、第2和第3范式。这些形式与非键值与键之间的关系有关。一个简单的总结是,第三范式的表是一个所有非键值都由键、整个键以及除键以外的任何值确定的表

有一整套的文献将教你如何规范化,规范化的好处是什么,有时还有什么缺点。一旦您精通规范化,您可能希望了解何时脱离规范化规则,并遵循类似星形模式的设计模式,这将导致结构良好但不是规范化的设计

有些人将正常化视为一种宗教,但这一观点言过其实。这绝对是一件值得学习的好事情,但它只是一套指导原则,可以经常(但不总是)引导您朝着令人满意的设计方向前进

规范化数据库在更新时的性能往往优于非规范化数据库,但可以构建非规范化数据库,该数据库对于某些类型的检索速度非常快


当然,所有这一切都取决于要构建的数据库数量及其大小和范围。

分解表(按列拆分)可能是可取的原因有很多。初学者应该学习的首要原因之一是数据规范化。数据规范化与性能没有直接关系,尽管规范化数据库有时会比构建较差的数据库表现更好,尤其是在负载下

规范化的前三个步骤将产生第1、第2和第3范式。这些形式与非键值与键之间的关系有关。一个简单的总结是,第三范式的表是一个所有非键值都由键、整个键以及除键以外的任何值确定的表

有一整套的文献将教你如何规范化,规范化的好处是什么,有时还有什么缺点。一旦您精通规范化,您可能希望了解何时脱离规范化规则,并遵循类似星形模式的设计模式,这将导致结构良好但不是规范化的设计

有些人将正常化视为一种宗教,但这一观点言过其实。这绝对是一件值得学习的好事情,但这只是一套指导原则