mysql中数百万行的基于键的分区

Posted

技术标签:

【中文标题】mysql中数百万行的基于键的分区【英文标题】:key based partitions in mysql for millions of rows 【发布时间】:2017-06-14 12:46:17 【问题描述】:

我的表有用户 ID(主键)并且它与其他用户的关系,所以表包含多行作为主键。现在我在系统中有大约 50 万用户,所以这些在该表中生成了数百万行。 由于这个原因,搜索和其他操作变得如此缓慢,我检查了 mysql 分区,所以想了解如何在这种情况下使用分区,以便查询将仅在该特定用户 ID 上执行(就像在我过去传递用户的每个查询中一样id 状态)。

【问题讨论】:

分区前,你玩够索引了吗?他们也可以做到这一点 @PrabhatG 我看到了索引,但分区引起了我的注意,好像它可以工作一样,我也会将它用于其他表和数据库。 请提供SHOW CREATE TABLE 和似乎“需要”分区的SELECT。我将可能向您展示如何在不进行分区的情况下获得同样出色或更好的性能。 【参考方案1】:

在查看分区之前,您是否考虑过添加索引?检查您的查询计划器,看看它是否进行全表扫描。

【讨论】:

这是一个解决方案,而不是评论? @tomjen 我检查了索引,但分区看起来更好。现在它会进行全表扫描,这就是我对分区更感兴趣的原因。

以上是关于mysql中数百万行的基于键的分区的主要内容,如果未能解决你的问题,请参考以下文章

分区表中未分区的旧行

具有数百万行的 Django 表

BigQuery 更快地插入数百万行的方法

在 Python 中合并具有数百万行的两个表

数百万行的数据库设计

如何使用 pandas 或 python 将具有数百万行的表从 PostgreSQL 复制到 Amazon Redshift