MySql分区问题,用于非常细分的数据

问题描述

这里有很多分区问题,很多时候人们警告说,这样做通常对性能没有帮助。我想看看我的用例是否是少数几个用例之一,并且还要弄清楚一些内容。

在我的用例中,每个用户都将分配到一个存储桶。存储桶中的每个用户都无法看到其他存储桶中的用户。因此,应用程序运行的几乎每个查询都将包含WHERE bucket = X。

因此,即使表中有10亿行,任何给定的查询也只关心其中的一小部分。

我的问题是

  1. 这是一个真正的分区性能提升用例吗?

  2. 当我将分区列添加到每个唯一键时,该索引将看起来像(列A,分区列)。如果我还记得,在复合索引中,您自己不会在第二索引上获得免费索引。因此,如果我对分区5中由非唯一列C排序的每个单个用户进行查询,那么分区列没有自己的索引这一事实是否重要?

  3. 这些分区可能有100-200个,具体取决于系统中用户的数量。我正在看一个看起来像下面的庞大而讨厌的分区范围表达式

          ALTER TABLE XXX
          PARTITION BY RANGE(the_thing) (
          PARTITION p0 VALUES LESS THAN (1),PARTITION p1 VALUES LESS THAN (2),PARTITION p2 VALUES LESS THAN (3),PARTITION p3 VALUES LESS THAN (4),PARTITION p3 VALUES LESS THAN (5),PARTITION p3 VALUES LESS THAN (6),PARTITION p3 VALUES LESS THAN (7),PARTITION p3 VALUES LESS THAN (8),AND ON AND ON AND ON....
          PARTITION p3 VALUES LESS THAN (200),PARTITION p3 VALUES LESS THAN MAX_VALUE);
    

那看起来真是笨拙和丑陋。就是这样吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)