В моей базе данных не хватило места, поэтому я сделал резервную копию старых записей.Теперь я должен очистить эти записи, и мой справочный столбец - «дата».
Я попытался использовать стандартный подход:
DELETE FROM table WHERE date >= '2017-01-01' AND date <= '2017-12-31'
Но это, очевидно, занимает слишком много времени, потому чтоЕсть более 7 миллионов строк для удаления.Есть ли способ ускорить это?Я пытаюсь разделить на месяцы и даже меньшие порции, но после запуска кода в течение некоторого времени я отключаюсь от сервера.
Заранее спасибо.
РЕДАКТИРОВАТЬ:
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;