如何在MySQL中处理来自相同结构表的20M+记录

如何在MySQL中处理来自相同结构表的20M+记录,mysql,sql,merge,bigdata,Mysql,Sql,Merge,Bigdata,我必须处理从大约50个不同来源收集和转换的2500万行数据。每个源指向大约500.000到600.000行。每个记录都有相同的结构,不管来源是什么,比如:id、标题、作者、发布日期 为了灵活性,我更愿意为每个源创建一个专用表,然后我可以从源中清除/删除数据,并使用LOAD Infle非常快速地重新加载/上载数据。通过这种方式,截断表似乎非常容易,而不会有从其他源删除行的风险 但是,我不知道如何在不同的表中选择具有相同作者的记录,以及带有分页限制关键字的蛋糕上的樱桃 是将所有内容存储到单个大型表中

我必须处理从大约50个不同来源收集和转换的2500万行数据。每个源指向大约500.000到600.000行。每个记录都有相同的结构,不管来源是什么,比如:id、标题、作者、发布日期

为了灵活性,我更愿意为每个源创建一个专用表,然后我可以从源中清除/删除数据,并使用LOAD Infle非常快速地重新加载/上载数据。通过这种方式,截断表似乎非常容易,而不会有从其他源删除行的风险

但是,我不知道如何在不同的表中选择具有相同作者的记录,以及带有分页限制关键字的蛋糕上的樱桃

是将所有内容存储到单个大型表中并处理索引/备份25M+数据库的痛苦的唯一解决方案,还是有一种抽象层将50个表虚拟合并到一个虚拟表中

对于dba来说,这可能是一个常见的问题,但我还没有找到任何答案。。。
非常感谢任何帮助/想法。Thx

这可能是一个好去处

这使您可以处理大量数据,同时在需要时可以在特定分区上运行DML操作,例如非常高效地截断或事件删除,而不会影响其余数据。LOAD DATA语句中也支持分区选择

您可以像处理普通表一样跨分区运行查询,或者在需要时以特定分区为目标,这可以非常高效地完成


在您的特定用例中,这似乎是一个相关的选择:您有一个预定义的源列表,因此每个源通常有一个分区。

这可能是一个很好的选择

这使您可以处理大量数据,同时在需要时可以在特定分区上运行DML操作,例如非常高效地截断或事件删除,而不会影响其余数据。LOAD DATA语句中也支持分区选择

您可以像处理普通表一样跨分区运行查询,或者在需要时以特定分区为目标,这可以非常高效地完成


在您的特定用例中,这似乎是一个相关的选择:您有一个预定义的源列表,因此通常每个源都有一个分区。

听起来像是在描述分区您所描述的是分区。我对MySQL的了解还不够,不知道这是否是你的答案。听起来你在描述分区。你所描述的是分区。我对MySQL的了解还不够,所以不知道这是否是你的答案。