如何理解主鍵、數(shù)據(jù)分區(qū)和數(shù)據(jù)分區(qū)鍵
發(fā)布時間:2018-03-01 點擊數(shù):2124
主鍵
表中的每一行由主鍵(PK)唯一確定。您在創(chuàng)建表的時候必須指定組成主鍵的列,這些列稱為主鍵列。主鍵列必須有值。您必須確保主鍵列的值的組合能夠唯一地確定一行。在后續(xù)使用的過程中,主鍵列的類型不能改變。
?數(shù)據(jù)分區(qū)和分區(qū)鍵
Table Store會自動把表分成不同的數(shù)據(jù)分區(qū),以達到對其存儲數(shù)據(jù)的負載均衡。數(shù)據(jù)分區(qū)的劃分粒度為主鍵的第一列,該列即為數(shù)據(jù)分區(qū)鍵。
擁有相同數(shù)據(jù)分區(qū)鍵的行必然在同一個數(shù)據(jù)分區(qū)中。Table Store能夠保證對具有同一數(shù)據(jù)分區(qū)鍵的數(shù)據(jù)進行更改操作的一致性。
下圖是一個電子郵件系統(tǒng)的郵件表的一部分。該表的主鍵和分區(qū)鍵信息如下:
-
列UserID、ReceiveTime、FromAddr分別表示郵件用戶的ID、接收時間、發(fā)送人,這些列為主鍵列,唯一確定一封郵件。其中UserID列為數(shù)據(jù)分區(qū)鍵。
-
列ToAddr、MailSize、Subject、Read分別表示收件人、郵件大小、郵件主題和郵件是否已讀,這些為普通的列,存儲郵件的相關(guān)信息。
-
圖中Table Store把UserID為U0001和U0002的用戶信息劃在一個數(shù)據(jù)分區(qū)中,而把UserID為U0003和U0004的用戶信息劃分在另一個數(shù)據(jù)分區(qū)中。