分区表中的索引

时间:2015-07-07 02:40:09

标签: mysql indexing

MySQL如何为分区表创建索引,例如,如果我按ID分区创建5个哈希:

  • 为所有数据创建1个全局索引,5个分区将使用此索引
  • 使用5个分区表中的子数据创建5个分区索引
  • 使用5个分区表中的所有数据创建5个索引

谢谢

2 个答案:

答案 0 :(得分:1)

没有"全球" MySQL中分区表的索引。

您可以放在分区表上的唯一索引最终成为每个分区上的单独索引。每个分区实际上都是一个独立的表。

HASH分区几乎没用;你有什么特别的用途,你认为它可能有益吗?

...附加物

索引的大小类似于表的大小。

由于没有"全球"索引,除非包含"分区键"的列,否则不能有UNIQUE键。你也不能使用FOREIGN KEYs

没有任何类型的索引跨越多个表。

答案 1 :(得分:0)

Mysql中的分区表仅支持本地索引。 这意味着什么?表的每个分区都为索引存储自己的B树。如果没有分区键作为索引的一部分,这会减慢搜索过程。同样对于唯一键约束,您需要添加分区键作为唯一键的一部分。

与Mysql相比,Oracle还具有全局索引的概念。全局索引很难管理。

我不太确定如果Mysql分区忽略了全局索引,那么它对您的帮助有多大。