у меня есть некоторые запросы на удаление для выполнения против некоторой довольно огромной таблицы (~100 ГБ), и я хочу оптимизировать их как можно больше:
delete from table1 where column1 < date_sub(now(), interval 100 hour);
column1 является a 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? или объединенный первичный ключ сделал бы это?
я предполагаю, что это довольно основные вопросы, но я не мог найти определенный ответ характерным для моей ситуации, таким образом, любая справка будет цениться!