我的数据库空间不足,所以我对旧记录进行了备份。现在我需要清除这些记录,我的参考列是“日期”。
我尝试使用标准方法:
DELETE FROM table WHERE date >= '2017-01-01' AND date <= '2017-12-31'
但是显然这需要花费太长时间,因为要删除的行数超过了700万。有没有一种方法可以加快速度?我试图按月份和更小的块进行划分,但在运行一段时间后,我会与服务器断开连接。
提前致谢。
编辑:
CREATE TABLE table (
id INT(11) NOT NULL AUTO_INCREMENT,
date DATE DEFAULT NULL,
# 18 more columns
PRIMARY KEY (id)
)
ENGINE = INNODB,
AUTO_INCREMENT = 29616055,
AVG_ROW_LENGTH = 317,
CHARACTER SET utf8mb4,
COLLATE utf8mb4_general_ci;
MySql
或Sql
标签 - Alextable
ADD INDEX date_index (date
);你的列date
是什么类型? - Alex