0

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

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

4

1 回答 1

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列值的更新?如果没有,您可以将您的 SUCCESS 和 ERROR 项插入不同的表中,每个表都有适当的索引。如果您需要一起检索它们,您可以使用 VIEW 来执行此操作。

于 2012-05-25T19:11:37.390 回答