我有下表有大量数据,这就是我想拆分或分区的原因。问题是我想通过一个没有主键的列进行分区:project_id。在我的情况下,将有最多2个或3个不同的项目ID ...
- id (PRIMARY KEY, AUTO INCREMENT)
- project_id (INT)
- username (UNIQUE)
- username_md5 (UNIQUE)
(- ... more but irrelevant columns)
正如您所看到的,我有3列需要保证是UNIQUE(id,username,username_md5)。 现在,我想在project_id列上进行RANGE分区。 我想出的唯一解决方案是为所有列创建一个丑陋的4列PRIMARY KEY(分区要求分区表达式中的所有列必须是每个唯一键的一部分)。
现在,我想知道
A)是一个4列的主键,可以使用吗?
B)我的分区有更好的解决方案吗?
C)否则我会通过创建"动态"手动完成。我拥有的每个project_id的表,这可能是最简单的解决方案吗?
答案 0 :(得分:1)
您可以删除主 /唯一键,并将其设为简单键,而不是在project_id上执行简单的范围分区,现在它确实需要是密钥
您仍然可以快速访问,因为这些字段已编制索引。
您可能仍希望保留唯一性: