首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL中的水平分区

问MySQL中的水平分区
EN

Stack Overflow用户
提问于 2013-07-04 06:50:57
回答 1查看 1.2K关注 0票数 2

我有一张有20栏的桌子。

代码语言:javascript
复制
-----------------------------------------------------------------
  GUID_PK  |  GUID_SET_ID  |  Col_3  |  Col_4  |  ... | Col_20
-----------------------------------------------------------------

可能会有数千个Sets,每个都有几十到不足1000条记录。一组中的记录都是相互关联的。集合是完全相互独立的。一整组是在一个大事务中一次读写的。一旦记录被写入,它就被读--永远只读,永不更改,只读。数据很少从此表中删除。当它被删除时,整个集合一次被删除。

只有SET_ID是传入的外键。PK是另一个表的传出外键。在明细表中,每个主记录保存大约3或4个记录(每个记录一个blob)。

问题是:我应该对表进行分区吗?我想是的。我老板想得更好。他希望动态地创建表,每组都有一个主表。我个人对动态创作的想法并不满意,但我害怕这种一刀切的体系结构。

批量插入和批量选择肯定会影响性能。大容量删除将再次重新排序索引。什么才是最优的结构?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-04 08:12:16

考虑到大多数Col_x列都已填充,您可以执行HASH PARTITIONING:

代码语言:javascript
复制
CREATE TABLE 

....

PARTITION BY HASH(GUID_SET_ID)
PARTITIONS NO_PART;

如果NO_PART是您想要的分区数,那么应该考虑到:

1)每天收到的数据量

2)你估计将来会收到的数据量

此外,您还可以检查其他分区类型这里。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17463613

复制
相关文章

相似问题

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