索引MySql中的表分区

时间:2012-05-25 16:02:23

标签: mysql indexing partitioning

在我的项目中,我有一个大约20列的表格。我们在列'status'上有分区表。为简单起见,我们假设状态“ERROR”和“SUCCESS”有两个可能的值。因此我们有两个分区,例如p1和p2。我们想要的是在每个分区上有不同的索引。例如,分区p1需要在column1和column2上有索引,而分区p2需要在第4列和第5列上有索引。

是否可以在MySql中对表的各个分区应用索引而不是在表级应用索引?我正在使用Mysql 5.5。我不想在表级应用索引的原因是它会使所有插入变慢。此表中的插入将对用户的响应时间产生影响。但是,通过作业进行更新,因此响应时间不是问题。

1 个答案:

答案 0 :(得分:0)

在MySQL中,索引工作在表级别,而不是分区级别。

从您的问题看来,您似乎需要准备好执行许多看起来像

的非常快速的查询
 SELECT something WHERE status='ERROR' and col1='val' and col2='val'

 SELECT something WHERE status='SUCCESS' and col4='val' and col5='val'

您是否会进行更新status列值的UPDATE?如果没有,您可以将SUCCESS和ERROR项目插入到不同的表中,每个表都适当地编入索引。如果您需要一起检索它们,可以使用VIEW来执行此操作。