首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有可能有一个拥有超过一百万列的SQL表吗?

有可能有一个拥有超过一百万列的SQL表吗?
EN

Stack Overflow用户
提问于 2011-06-28 18:03:14
回答 5查看 1.2K关注 0票数 8

我正在为微阵列数据建立一个数据库。每个病人样本都有超过1,000,000个特性,我希望将病人样本作为行存储在SQL表中,并将每个功能作为列。

代码语言:javascript
复制
                 HuEX Microarray Data
+----+----------+----------+-----+------------------+
| ID | Feature1 | Feature2 | ... | Feature1,000,000 |
+----+----------+----------+-----+------------------+
| 1  |   2.3543 |  10.5454 | ... |          5.34333 |
| 2  |  13.4312 |   1.3432 | ... |         40.23422 |
+----+----------+----------+-----+------------------+

我知道大多数关系数据库系统对表中的列数都有限制。

代码语言:javascript
复制
+------------+-----------------+
|       DBMS | Max Table Col # | 
+------------+-----------------+
| SQL Server |  1,024 - 30,000 |
|      MySQL |    65,535 bytes |
| PostgreSQL |     250 - 1,600 |
|     Oracle |           1,000 | 
+------------+-----------------+

显然,这些限制对于我的任务来说太低了。是否存在增加SQL数据库表可以拥有的列的数量,或者是否有另一个DBMS可以处理如此多的表列?

更新

注意,所有列都有所有行的值。

EN

回答 5

Stack Overflow用户

发布于 2011-06-28 18:06:09

别。

事件,如果你能使它工作,它将是非常缓慢和笨拙的。

相反,您应该为PatientIDFeatureValue创建一个包含列的单独表。

此表中的每个单元格将有一行。

它还使得添加关于每个病人特征对的附加信息成为可能。

票数 13
EN

Stack Overflow用户

发布于 2011-06-28 18:07:28

通常,您会将表拆分(规范化):

代码语言:javascript
复制
Sample: ID, PatientID
Feature: ID, Name
SampleFeature: SampleID, FeatureID, value

SQL数据库不能处理很多列,但它们可以处理很多行。

票数 4
EN

Stack Overflow用户

发布于 2011-06-28 18:07:38

试着重新安排您的桌子,以便:

代码语言:javascript
复制
CREATE TABLE MicroarrayData (
    SampleID  INTEGER,
    FeatureID INTEGER,
    Value     REAL,
    PRIMARY KEY (SampleID, FeatureID)
);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6511031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档