首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大集合的主键设计和分区

大集合的主键设计和分区
EN

Stack Overflow用户
提问于 2015-05-28 15:45:53
回答 1查看 36关注 0票数 2

我目前正在为sql server设计一个数据库,我需要处理大量的数据。

以下是我的背景:

由4680芯片组成的基片作为唯一ID

每个芯片由66个点组成,并有一个通过率/失败布尔值。

每个点为3个值(x,y,半径)

所以,每隔20分钟,我就需要插入一个对应308'880个点的减震器,而这10年间24/24小时7/7的时间就会产生80亿个点(我知道这听起来很大)。

我考虑使用这样的组合键:

子字符串(INT ID)

芯片(INT FK_SUBSTRATID,ROWNUMBER INT,COLNUMBER INT)

SPOT(INT FK_SUBSTRATID,CHIPROWNUMBER INT,CHIPCOLNUMBER INT,ROWNUMBER INT,COLNUMBER INT )

对于芯片和点,列数和行号从1-30迭代。

我也在考虑把所有的点信息放进芯片表。我真的不知道在这样的情况下什么是最好的,因为我从来没有遇到过这么多的数据。

我想知道如何在这些表上使用分区,数据需要有一个很好的响应时间,比如说30天,所以我计划添加一个字段InsertDate来对其进行分区。

编辑:

至于数据的使用,芯片信息将在30天内作出决定,因为是否应该继续生产减震器。

现场信息将用于按需对x,y偏差进行统计分析。

现场和芯片信息应根据需求至少检索10年,所有数据都需要保存,以符合FDA的要求。

谢谢大家的建议

EN

回答 1

Stack Overflow用户

发布于 2015-05-28 16:43:21

关于关键设计的主要问题,我将留待其他人回答,但我想回答插入和读取性能的问题。

当您需要有效地写入和读取大型数据集时,就可以使用单独的专用读和写数据库。这个想法是有两种不同的模式--一种是为快速写作而优化的,一种是为快速阅读而优化的。然后,将通过输入数据工作的作业放在一起,并将其移到可读的数据库/表中。交换条件是,您的书面数据不是立即可用的(延迟取决于您喜欢如何处理写入)。

这种方法类似(但不完全是) 命令查询责任分离--CQRS。要点是,拥有专门的读和写组件可以使每个组件都高度调整到它的角色。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30511310

复制
相关文章

相似问题

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