如何处理 MySQL 中具有相同结构的表中的 20M+ 条记录
How to handle 20M+ records from tables with same structure in MySQL
我必须处理从大约 50 个不同来源收集和转换的 2500 万行数据。每个源都会导致大约 500.000 到 600.000 行。无论来源如何,每条记录都具有相同的结构(比方说:id、标题、作者、release_date)
为了灵活性,我更愿意为每个源创建一个专用的 table,(然后我可以 clear/drop 来自源的数据和 reload/upload 数据非常快(使用 LOAD INFILE )).这样,似乎很容易截断 table 而没有从其他来源删除行的风险。
但后来我不知道如何 select 记录具有相同作者的不同 table s,蛋糕上的樱桃,分页(LIMIT 关键字)。
是将所有内容存储到一个巨大的 table 并处理 indexing/backuping 25M+ 数据库的痛苦的唯一解决方案,还是有一种抽象层来虚拟合并 50 tables变成一个虚拟的。
这可能是 dba 的常见问题,但我还没有找到任何答案...
非常感谢任何help/idea。感谢
这可能是 MySQL partitoning 的好地方。
这让您可以处理大量数据,同时让您有机会在需要时对特定分区进行 运行 DML 操作(例如 truncate
,或事件 drop
) 非常有效,并且不会影响其余数据。 LOAD DATA
语句也支持分区选择。
您可以 运行 像使用普通 table 一样跨分区查询,或者在需要时定位特定分区(这可以非常有效地完成)。
在您的特定用例中,list partitioning 似乎是一个相关的选择:您有一个预定义的源列表,因此通常每个源都有一个分区。
我必须处理从大约 50 个不同来源收集和转换的 2500 万行数据。每个源都会导致大约 500.000 到 600.000 行。无论来源如何,每条记录都具有相同的结构(比方说:id、标题、作者、release_date)
为了灵活性,我更愿意为每个源创建一个专用的 table,(然后我可以 clear/drop 来自源的数据和 reload/upload 数据非常快(使用 LOAD INFILE )).这样,似乎很容易截断 table 而没有从其他来源删除行的风险。
但后来我不知道如何 select 记录具有相同作者的不同 table s,蛋糕上的樱桃,分页(LIMIT 关键字)。
是将所有内容存储到一个巨大的 table 并处理 indexing/backuping 25M+ 数据库的痛苦的唯一解决方案,还是有一种抽象层来虚拟合并 50 tables变成一个虚拟的。
这可能是 dba 的常见问题,但我还没有找到任何答案... 非常感谢任何help/idea。感谢
这可能是 MySQL partitoning 的好地方。
这让您可以处理大量数据,同时让您有机会在需要时对特定分区进行 运行 DML 操作(例如 truncate
,或事件 drop
) 非常有效,并且不会影响其余数据。 LOAD DATA
语句也支持分区选择。
您可以 运行 像使用普通 table 一样跨分区查询,或者在需要时定位特定分区(这可以非常有效地完成)。
在您的特定用例中,list partitioning 似乎是一个相关的选择:您有一个预定义的源列表,因此通常每个源都有一个分区。