我有一个基本的 WHERE IN 查询需要很长时间(30 秒以上)来处理。
DELETE FROM `table1`
WHERE ( djID, localID )
IN (("128","26"),("110","32"))
Run Code Online (Sandbox Code Playgroud)
我正在查询的表有大约 2000 万行,有两个索引 - 第一个是名为 ID 的自动递增的 PK,第二个索引超过两列 - djID
,localID
我想知道 MySQL 是否在查询中的每个 ( djID, localID ) 之后重新索引表,因此考虑了很长的查询时间,如果是这样,有没有办法强制它等到所有 ( djID, localID ) ) 在重新索引之前已在查询中执行了集合?
还是有其他原因跳出可能导致查询时间过长?
我确信我在这里遗漏了一些明显的东西,但是如果我每天都进行完整的数据库备份,为什么我还需要单独的每周和每月备份?或者是不需要单独的每周和每月一次,而只需每周一次和每月一次留出每日一次?
谢谢。