gpt4 book ai didi

MySQL InnoDB 删除 500,000 条记录导致整个服务器变慢

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:48:55 25 4
gpt4 key购买 nike

每周都会触发一个 cronjob,从使用 InnoDB 引擎的 MySQL 表中删除大约 500,000 条记录。该表包含每周处理的网络日志数据,之后不再需要的数据将被删除。这个表有3个索引(没有外键),包括时间,是一个unix时间戳。

DELETE FROM global_viewlog WHERE time<1354391592

问题是这个查询在上周运行时运行了 2 个多小时,在此期间我的整个服务器都滞后了。 “iotop”揭示了 MySQL 写入的硬盘大量引用,服务器负载急剧增加到不健康的水平。

每次点击都会写入表格。房间里有我没看到的大象吗?即,优化这个每周查询的明显明显的东西?

谢谢

最佳答案

如果您定期根据时间删除旧数据,那么根据同一列对表进行分区会更快。它将不同的时间段分隔到磁盘上的不同区域,因此删除只是删除整个 block 而不是查看单独的行。

http://dev.mysql.com/doc/refman/5.5/en/partitioning.html

关于MySQL InnoDB 删除 500,000 条记录导致整个服务器变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13663158/

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