3
我有下表與大量的數據,這就是爲什麼我想拆分或分區它。問題是我想通過一個不是主鍵的列進行分區:project_id。在我的情況下,將最多2個或3個不同的項目標識...Mysql:分區與主鍵
- id (PRIMARY KEY, AUTO INCREMENT)
- project_id (INT)
- username (UNIQUE)
- username_md5 (UNIQUE)
(- ... more but irrelevant columns)
正如你可以看到我有3列,我需要保證是唯一的(ID,用戶名,username_md5)。 現在,我想在project_id列上做一個RANGE分區。 我想出的唯一解決方案是爲所有列創建一個醜陋的4列PRIMARY KEY(分區要求分區表達式中的所有列必須是每個唯一鍵的一部分)。現在
,我想知道
A)是一個4列主鍵就好了可用?
B)有沒有更好的解決方案,我的分區?
C)否則我會通過爲每個project_id創建一個「動態」表來手動完成它,這可能是最簡單的解決方案嗎?
你好邁克爾,我不明白你的解決方案。 那麼,我應該放棄我的主鍵並創建一個唯一的鍵? 唯一的鑰匙應該跨越所有4列嗎? 否則,project_id不能是唯一的,那麼我應該使用什麼樣的密鑰? 感謝您的回覆。 – 2013-03-07 10:24:00
@Benedikt,刪除所有主鍵和唯一鍵,並使它們成爲唯一鍵,讀取'unique key'和'key'之間的區別,您不需要添加任何新的span鍵,我不認爲您需要強制project_id通過使用唯一的密鑰是唯一的,爲什麼你應該執行什麼查詢? – Michael 2013-03-07 10:34:50
這工作正常,謝謝!所有4列現在都有自己的簡單密鑰。 但是,我現在可以保證「username」和「username_md5」是唯一的嗎? (ID是自動增量,所以我想它會沒事的)。 – 2013-03-07 10:42:16