gpt4 book ai didi

mysql - 每5分钟更换150万行数据集

转载 作者:行者123 更新时间:2023-11-29 18:06:26 25 4
gpt4 key购买 nike

我有一个 MySQL 数据库,其中有一个表,其中填充了大约 150 万行数据,需要每 5 分钟完全刷新一次。一旦数据超过 5 分钟,就不再需要该数据。

将数据放入表中没有问题...我可以在大约 50-70 秒内填充它。我遇到的一些麻烦是弄清楚如何将所有旧数据移出并用新数据替换。我需要能够随时对整个数据集运行查询。这些查询需要运行得非常快,并且一次必须仅包含一个数据集的数据(即,查询不应在表更新的 1 分钟内提取新旧数据的组合)。

我没有太多处理大型临时数据集的经验,因此我希望获得一些有关如何最好地解决此问题的建议。

最佳答案

创建分区。然后,您可以填充一个分区,同时用户从另一个分区进行查询。

要手动执行此操作,您只需要类似...

CREATE TABLE tbl0 (blah)
CREATE TABLE tbl1 (blah)
CREATE TABLE meta (combined_source INT)
INSERT INTO meta VALUES (0)

CREATE VIEW combined AS
SELECT * FROM tbl0 WHERE 0 = (SELECT combined_source FROM meta) % 2
UNION ALL
SELECT * FROM tbl1 WHERE 1 = (SELECT combined_source FROM meta) % 2

现在您可以将新数据插入“非事件”表中,并且它不会出现在 View 中。

接下来,增加 meta 中的值。 View 立即从显示一个表中的数据切换到显示另一个表中的数据。

在下一次迭代中,您只需检查即可确定要清空哪个表并将新数据加载到其中。

这种方法的一个好处是您甚至不需要参与事务。

关于mysql - 每5分钟更换150万行数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47776953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com