创建一个包含大量列的大表?

Posted

技术标签:

【中文标题】创建一个包含大量列的大表?【英文标题】:Create a big table with huge number of columns? 【发布时间】:2017-12-07 23:49:42 【问题描述】:

如何创建一个包含 1000 行和至少 64000 列的表。据我所知,SQL 数据库和 Microsoft Excel 分别只支持每个表 30000 和 16384 列。我怎样才能创建这样的表?有什么解决办法吗?我想将此表用作 RapidMiner 工作室的输入!

【问题讨论】:

最大列数取决于数据库。 64,000 列将超过大多数数据库的限制。 尝试规范化它 什么样的数据?你必须改变/操纵这个怪物吗?这种去规范化 DWH?您是否填写一次,或者您是否必须添加/删除行(如果是,多久一次?)。总而言之,我会说;把它分成几个表。如果这必须在一个单表中完成(无法想象为什么),您可以使用XML 类型的列将多个值存储在一个单元格中而不会违反1.NF 直接... 使用合适的工具(不是excel,不是SQL)和合适的数据模型(你可能有稀疏数据)。 【参考方案1】:

如果您决定创建这个野兽,则需要解决列限制。

我的建议是 10x~6401 列表,用 ID/Key 链接每一行。

将十张表像这样连接在一起:

 select * from
 Table1
 join Table2 on Table1.ID = Table2.ID
 join Table3 on Table1.ID = Table3.ID

等等等等

这是否可以作为 RapiMiner 的单一输入,我不确定

【讨论】:

以上是关于创建一个包含大量列的大表?的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 无法查询滞后的大表

如何优化mysql中的大表?

堆有性能问题的大表

通过自定义分区器对雪花中的大表进行分区

如何在低规格系统上的大表上提高 MySQL 性能?

当从 id 从 30000 开始计时超过 2 分钟的大表中更新和选择时