繁体   English   中英

在MySql中索引表分区

[英]Indexing a table partition in MySql

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

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

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

从您的问题看来,您似乎需要准备好进行许多非常快速的查询,例如

 SELECT something WHERE status='ERROR' and col1='val' and col2='val'

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM