首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql:无主键分区

问Mysql:无主键分区
EN

Stack Overflow用户
提问于 2013-03-07 18:00:21
回答 1查看 2K关注 0票数 3

我有一个包含大量数据的表,这就是我想要拆分或分区它的原因。问题是我想按一个不是主键的列进行分区: project_id。在我的例子中,最多有2到3个不同的项目In……

代码语言:javascript
复制
- id (PRIMARY KEY, AUTO INCREMENT)
- project_id (INT)
- username (UNIQUE)
- username_md5 (UNIQUE)
(- ... more but irrelevant columns)

正如您所看到的,我有3列需要保证是唯一的(id、用户名、username_md5)。现在,我想对project_id列进行范围分区。我想出的唯一解决方案是为所有这些列创建一个丑陋的4列主键(分区要求分区表达式中的所有列都必须是每个唯一键的一部分)。

现在,我想知道

A) 4列主键是否正常且可用?

B)我的分区有更好的解决方案吗?

C)否则我会手动为我拥有的每个project_id创建一个“动态”表,这是最简单的解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-07 18:09:35

您可以删除您的主/唯一键,并使其成为一个简单的键,然后在project_id上执行一个简单的范围分区,现在它确实需要成为键

您仍然可以快速访问,因为这些字段已建立索引。

您可能仍然希望保留唯一性:

在

  • 中执行此操作使用嵌套插入并选择
  • 您可以使用添加了唯一约束的其他表(仅限其组合),并保持对表中组合的引用
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15268116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档