SQL中的列逻辑

时间:2015-03-16 11:12:21

标签: sql sql-server bigdata sql-server-2014

这里第一次发布海报!我想在这里提出各种意见。我正在收集过去10年的每日库存数据(因此大约有2500行数据并不重要),但是我有200多只库存(可能会随着时间的推移增加到1000行),每个库存大约30个单独的字段。所以我们谈论的是一个最初有6000列的表,一天增长到超过30000列,但更恰当的可能只有6000-10000列。我认识到SQL数据库可能不是最好的方法,有许多“大数据”程序,如mongodb,hadoop等,但我从未使用它们(只有SQL)

任何人都可以了解在SQL中存储它的最佳方法。我知道每个表都限制在1024列,人们建议我把它分成10个以上的独立表吗?我对这对性能的影响感兴趣吗?

请注意,每个股票及其功能将与数据库中的所有其他股票互斥。

期待意见

2 个答案:

答案 0 :(得分:1)

我不明白为什么你有这么多不同的专栏。每个时间单位每个库存应该有一行。我想要一个包含几十列的结构:

  • 股票识别码
  • 日期(或日期/时间)
  • 每个库存30个左右的措施

您似乎希望将内容存储在应该在行中的列中。

这是一个大小合理的数据集,但可能只有几百万行和几千兆字节。数据库支持更大的数据集。

答案 1 :(得分:0)

这么多列是一种设计气味。

但是,MySQL在表中最多只支持4096列。摘自CREATE TABLE statement的文档:

  

每个表有4096列的硬限制,但给定表的有效最大值可能更小,并取决于D.10.4节“Limits on Table Column Count and Row Size”中讨论的因素。