微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据库设计 – 存储大量列的好方法是什么?

我在确定如何在数据库中存储此数据时遇到问题.有关最佳方法的任何建议吗?我可能会补充说,我不太了解数据库.

我有这样的数据格式,但不是4,列数约为240,因此每个日期有240个与之关联的唯一值:

Date/Time 200,00 202,50 205,00  
2010.11.12  13:34:00  45,8214 43,8512  41,5369   
2010.11.12  13:35:00  461,9364  454,2612  435,5222

行也与DataSites相关联.

我的第一个想法就是有这样一张桌子:
DataID(pk),DataSiteID,ParameterID,Date,Value,DataSite索引,参数和日期. ParameterID引用另一个存储输入列标题的表(200,00 …).

我的第二个想法就是拥有一张包含所有240多列的表格.我已经提出了其他一些方法,但它们也非常不令人满意.

我的第一个解决方案的问题(不是这么大的问题,但我不喜欢它),是对于该输入行中的所有240个值将重复Date和DataSiteID,因此它使用了相当多的额外的空间.

每年将有大约40GB的数据(以上面的文本格式),数据将由DataSite,参数和日期搜索.进入的数据量很可能在一年左右翻两番.

有什么好主意吗?
谢谢,詹姆斯

编辑:这是时间序列数据,列是不同波长的测量值.希望在相对窄的波长范围内分析数据.在未来的某个时刻也可能会增加额外的波长.

编辑:谢谢你的答案,我真的很感激:)我想我可能有时间用500g左右的测试数据进行一些实验.我会回复任何结论;)

解决方法

您可以以任何一种方式创建案例,但如果要将数据用于分析,并且您经常希望同时查看该数据中的多个列,请使用宽表.确保您知道数据库数量和行大小限制.确保您获得正确的数据类型.如果许多列为空,sql Server允许您为此优化表.您还可以考虑使用NOsql(Not Only sql)解决方案来分析此类数据.

如果此数据对分析的影响较小,您可能希望按照问题中的说明对其进行标准化.

原文地址:https://www.jb51.cc/mssql/80207.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐