我是 MySQL 分区的新手,因此任何示例都会受到赞赏。
我正在尝试为分布在多个 MyISAM 表之间的数据创建一种老化机制。
我的问题实际上将包括几个子问题。
相关表格如下:
- 第一个表包含具有高输入频率的原始数据(每条记录旁边都有一个自动递增的 id)。
- 第二个表包含处理结果,每个原始数据记录都有一个结果记录(结果记录包含原始数据记录的自动递增字段的源ID记录)
问题:
- 我需要能够对原始数据表和结果数据表进行类似的分区,以便它们在单个分区中仅包含 10 周的数据(每个原始数据记录都包含 unixtimestamp 字段),我该怎么做,有人可以写两个这样的表的小例子?
- 我希望能够即时更改 10 周的限制。
- 我希望当当前分区被填充或创建新分区时,前一个(10 周前)分区将被自动删除。
- 我不希望自动递增 id 整数被溢出,据我所知,id 仅对分区是唯一的,所以如果我没记错的话,下一个分区的自动递增 id 将从零开始?但是如果前一个分区仍然存在,我会有 2 个重复的 id,我怎么知道在呈现结果记录时只引用最后一个 id?
- 我想使用 LOAD DATA INTO... 而不是多次插入来加载原始数据,MySQL 分区功能是否受到影响?
最后一个问题,您是否建议一些其他方法来实现老化机制(我正在编写 Java 实现产品,每天处理大约 1 GB 或原始数据并将结果存储在 MySQL 中)