我的基本表格包含200萬條30列用戶的記錄。SQL - 2M以內的潛在100K記錄。設計數據庫的最佳方法
偶爾會有一個新的活動開放供潛在的100K用戶參與(每個活動的不同組別)。 每個用戶都會進行一次自我認證,他/她的活動數據將被保存以供進一步使用。
什麼是設計數據庫的最佳方法?
複製100K與從基表中的所有要求和需要的細節Users_In_Activity表。將爲每條記錄創建一個新的PK(Users_In_Activity主鍵)。
- 在這個方法中,將有來自只的記錄100K表和用於將一個PK(Users_In_Activity)進行記錄搜索 之間沒有接縫。
將100K用戶基本認證細節複製到Potential_Users_In_Activity表中。一個新的PK將被創建(包括用戶PK)並且將創建一個新的User_In_activity PK。
- 對於每次成功的身份驗證,將在Actual_Users_In_Activity表中創建完整記錄。
- 搜索記錄將由一個PK(Users_In_Activity)從僅100K的記錄中完成。在該方法中,爲2與一種PK(Users_In_Activity)提交之間加入
對於每個成功的認證
- ,一個完整的記錄將在Actual_Users_In_Activity表被創建。
- 在這種方法中沒有連接,但搜索將會從所有200萬條記錄中搜索。
。
。
綜述:
方法1:創建100K 30列記錄。從100K條記錄中搜索,無需在活動期間創建新記錄。不需要連接。只有一張桌子可以使用。
方法2:創建5列100K。從100K條記錄中搜索。在活動期間創建新記錄(30列)(僅限活動用戶)。加入是必要的。 2表與
一起使用方法3:從2M條記錄中搜索。在活動期間創建新記錄(30列)(僅限活動用戶)。 2表進行
你期望什麼樣的流量? R/W比率。 – iddqd
爲什麼你需要複製這30列?重複數據通常不是一個好主意。 –
@AntonínLejsek不是。在當今的標準中重複數據以進行有效的查詢是一個好主意。 –