luc*_*dev 3 mysql sql merge bigdata
我必须处理从大约 50 个不同来源收集和转换的 2500 万行数据。每个源都会产生大约 500.000 到 600.000 行。无论来源如何,每个记录都具有相同的结构(例如:id、标题、作者、发布日期)
为了灵活性,我更愿意为每个源创建一个专用表(然后我可以从源中清除/删除数据并非常快速地重新加载/上传数据(使用 LOAD INFILE))。这样,截断表似乎很容易,并且没有从其他源删除行的风险。
但后来我不知道如何选择不同表中具有相同作者的记录,以及锦上添花的分页(LIMIT 关键字)。
是将所有内容存储到单个大表中并处理索引/备份 25M+ 数据库的痛苦的唯一解决方案,或者是否有一种抽象层可以将 50 个表虚拟合并到一个虚拟表中。
对于 dba 来说,这可能是一个常见的问题,但我还找不到任何答案......非常感谢任何帮助/想法。谢谢
这可能是MySQL 分区的好地方。
这使您可以处理大量数据,同时让您有机会在需要时(例如truncate或事件drop)非常高效地在特定分区上运行 DML 操作,并且不会影响其余数据。语句中也支持分区选择LOAD DATA。
您可以像使用普通表一样跨分区运行查询,或者在需要时定位特定分区(这可以非常有效地完成)。
在您的特定用例中,列表分区似乎是一个相关的选择:您有一个预定义的源列表,因此通常每个源有一个分区。
| 归档时间: |
|
| 查看次数: |
1764 次 |
| 最近记录: |