标签: mysql database partitioning
对一个简单的关注者表进行分区的最佳方法是什么,该关键表在(user_id,follower_id)上有一个主键,并且在(follower_id)上有一个索引?
我们使用user_id和follower_id进行选择查询。 如果我们基于user_id分割数据,我们将无法在同一个表中根据follower_id检索完整结果。 将表复制到单独的跟随者表,并根据他们自己的主键对每个表进行分区似乎是一个选项,但我们不确定。
该表目前有1000万条记录,并且正在迅速增长。
答案 0 :(得分:0)
PARTITIONing本身并不提供任何性能优势。事实上,它有时会减慢处理速度。有4 use cases PARTITION是有益的;你的描述似乎不是其中之一。
PARTITIONing
PARTITION
user :: follower关系是否对称?也就是说,如果我“跟随”你,你是否一定“跟随”我? (答案可能导致采用不同的数据结构方式。)
对于很多:很多关系,这听起来像是遵循指南here。据推测,您有一个“用户”表,并且该表与其自身之间存在关系。
我(还)没有看到你在非分区方面遇到什么问题以及很多:很多表。你在乎什么?
要进一步讨论,请提供暂定的CREATE TABLE 和 SELECTs。
CREATE TABLE
SELECTs