mysql - MySQL 使用 LIMIT 或 WHERE 删除记录
问题描述
我正在尝试找到删除 MySQL DB 中数百万条记录的最佳方法。我有一个在 ID 上带有 PK 的表,在“日期”列上有一个索引,我的删除查询如下:
DELETE FROM table WHERE date < '<today - 6 months>';
它在从站上产生了很多延迟。
我有两个选择:
DELETE FROM table WHERE date < '<today - 6 months>' LIMIT 1000;
或者
包括进一步的索引或使用 PK 进行删除。
我想听听你的意见。如果使用 LIMIT 不会改变工作量,或者如果使用 PK(与 LIMIT 结合)更好。
解决方案
推荐阅读
- php - 如何在 Laravel 6 中使用 DB::raw 将基于关系的文件放入 CONCAT?
- java - 在java中读取文件的特定部分
- c# - 使用 WPF 在框架中加载页面。框架可以重定向到页面。但设计未加载
- c++ - cmake add_custom_command + Xcode:多输出=多命令调用
- java - 如何在 AndroidStudio 中保存按钮的状态?
- .net - AWS DynamoDb - 更新列表中的特定地图 (.NET)
- reactjs - 在浏览器中显示失败的重建开发 npm/react/gatsy 错误
- magento - 用于 Magento 2 开发的 Docker
- javascript - 谷歌表格脚本 - onChange
- azure - Azure DevOps 的 C:\agent\_work\1\a 中最后一个字母“a”、“b”或“s”是什么意思?谁知道最后一个字母代表什么?