表中的最大列数

Asa*_*sad 5 mysql database sql-server

问题1:表中我们可以拥有的最大列数是多少

问题2:表中应该具有的最大列数是多少

Bil*_*win 9

答案1:可能比你拥有的多,但不会超过你的成长.

答案2:比你少.

提出这些问题通常表明您没有很好地设计表格.您可能正在练习元数据Tribbles反模式.这些列往往会随着时间的推移而累积,创建一组无限的列,这些列基本上存储相同类型的数据.例如subtotal1,subtotal2,subtotal3等.

相反,我猜你应该创建一个额外的依赖表,所以你的许多列会变成很多行.这是设计适当的规范化数据库的一部分.

CREATE TABLE Subtotals (
  entity_id    INT NOT NULL,
  year_quarter SMALLINT NOT NULL, -- e.g. 20094
  subtotal NUMERIC(9,2) NOT NULL,
  PRIMARY KEY (entity_id, year_quarter),
  FOREIGN KEY (entity_id) REFERENCES Entities (entity_id)
);
Run Code Online (Sandbox Code Playgroud)

我的前同事也写过一篇关于此的博客:

了解MySQL表中的最大列数

答案并不像你想象的那么简单.


And*_*rew 7

SQL 2000:1024

SQL 2005:1024

SQL 2008:1024用于非宽表,30k用于宽表.

宽表用于在SQL 2008中使用新的稀疏列功能时,该功能是为大量通常为空的列而设计的.

仅仅因为这些限制是可用的,并不意味着你应该使用它们,但是,我将从根据需求设计表开始,然后检查是否需要将1个表垂直分区为2个较小的表等.