簡體   English   中英

大集合的主鍵設計和分區

[英]Primary key design and partitioning for large sets

我目前正在為sql服務器設計數據庫,我需要處理大量數據。

上下文是我擁有的以下內容:
由4680芯片組成的唯一ID
每個籌碼由66個點組成,並且具有通過/失敗布爾值
每個點為3個值(x,y,半徑)

因此,每20分鍾我需要插入1個對應於308'880點的下層,而這24 / 24h 7 / 7d持續10年,產生80億個點(我知道這聽起來很多..)

我考慮過使用這樣的復合鍵:
SUBSTRAT (整數ID)
芯片 (INT FK_SUBSTRATID,ROWNUMBER INT,COLNUMBER INT)
(INT FK_SUBSTRATID,CHIPROWNUMBER INT,CHIPCOLNUMBER INT,ROWNUMBER INT,COLNUMBER INT)

芯片和點的列號和行號從1-30迭代

我也在考慮將所有景點信息放入CHIP表中。 我真的不知道哪種情況最好,因為我從未遇到過如此多的數據。

我想知道如何在這些表上使用分區,數據需要具有良好的響應時間(比如說30天),因此我打算添加一個字段InsertDate對其進行分區。

編輯:
至於數據的使用,芯片信息將在30天之內用於決策,因為是否繼續進行基板的制造。
現貨信息將用於按需對x,y偏差進行統計分析
現貨和芯片信息應按需至少檢索十年,所有數據都必須保存以符合FDA要求

謝謝大家的建議

我會就您的密鑰設計的主要問題向其他人介紹,但想回答插入和讀取性能的問題。

當您需要同時高效地寫入和讀取大型數據集時,可以使用單獨的專用讀取和寫入數據庫。 這個想法是您有兩種不同的模式-一種針對快速寫入進行了優化,一種針對快速讀取進行了優化。 然后,您將處理輸入數據的作業放在一起,然后將其移到可讀的數據庫/表中。 折衷方案是無法立即獲得書面數據(滯后時間取決於您更喜歡如何處理寫入)。

該方法與命令查詢責任隔離( CQRS)類似(但不完全相同)。 要點是,擁有專門的讀寫組件可以讓每個組件都高度適合其角色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM