Оптимизация оператора удаления MySQL

У меня есть несколько запросов на удаление для довольно большой таблицы (~ 100 ГБ), и я хочу максимально оптимизировать их:

delete from table1 where column1 < date_sub(now(), interval 100 hour);

column1 являетсяdatetime столбец, я предполагаю, что создание индекса для этого столбца ускорит удаление. кроме того, что я могу сделать здесь? будет использоватьdate_sub() функция замедляет запрос? я должен вычислить это значение перед запуском запроса?

delete from table2 where column2 = x;

column2 является первичным ключом для table2, так что это уже индекс в соответствии с документацией mysql. мой вопрос: индекс видPRIMARYэто то же самое, чтоINDEX? Должен ли я сделать еще один индекс такого родаINDEX для ускорения?

delete from table3 where column3 = y;

table3 имеет составной первичный ключ, который является column3 и column4. поэтому у меня есть индекс первичного ключа, но так как запрос на удаление не использует column4, я должен сделать отдельный индекс только для column3? или объединенный первичный ключ сделает это?

Я думаю, это довольно простые вопросы, но я не смог найти однозначного ответа, специфичного для моей ситуации, поэтому любая помощь будет принята с благодарностью!

Ответы на вопрос(2)

Ваш ответ на вопрос