每周都会触发一个 cronjob,从使用 InnoDB 引擎的 MySQL 表中删除大约 500,000 条记录。该表包含用于每周处理的 Web 日志数据,然后删除不再需要的数据。该表上有 3 个索引(没有外键),包括时间,它是一个 unix 时间戳。
从 global_viewlog 中删除时间<1354391592
问题是上周运行的这个查询需要 2 多个小时才能运行,而在那段时间我的整个服务器都滞后了。'iotop' 揭示了被 MySQL 引用大量写入的硬盘,并且服务器负载急剧增加到不健康的水平。
每次点击都会写入表格。房间里有我没看到的大象吗?即,优化这个每周查询的一些显而易见的事情?
谢谢