我正在研究醫療軟件,我的目標是將大量自定義操作存儲到數據庫中。由於跟蹤誰做了什麼非常重要,每次用戶做了一些有意義的事情(例如寫評論,添加一些醫療信息等),就會產生一個行動。現在的問題是,隨着時間的推移,將會有的行動,比方說每個病人10000個,並且可能有50000個病人,導致總共5億次行動(甚至更多)。有很多行的實體框架
目前數據庫模型看起來是這樣的:
[Patient] 1 -- 1 [ActionBlob]
所以每個患者只是有一個大斑點,其中包含所有動作大序列化的字節數組。當表變大時,這當然不起作用,因爲我必須在數據庫和客戶端之間來回傳輸整個字節數組。
我的下一個想法是有單獨的序列化操作的列表(而不是一大塊),即
[Patient] 1 -- * [Action]
,但我開始懷疑這是否是一個很好的方法還是不行。現在當我添加新的動作時,我不必序列化所有其他動作並將它們傳送到數據庫,但只需序列化一個動作並將其添加到動作表。但是如何加載數據,它會超級低,因爲在一個表中可能有5億行?
所以基本上問題是:
- 可以在SQL從表10000行的服務器手柄裝載500萬行? (這些數字可能會更大)
- 實體框架能夠處理10000個實體的實現而不會很慢嗎?
分區表應該針對您的需求 – Alex