Я довольно небрежен с базами данных, не может получить эту работу с соединениями, и я даже не уверен, что будет быстрее ...Как оптимизировать эту операцию БД?
DELETE FROM atable
WHERE btable_id IN (SELECT id
FROM btable
WHERE param > 2)
AND ctable_id IN (SELECT id
FROM ctable
WHERE (someblob LIKE '%_ID1_%'
OR someblob LIKE '%_ID2_%'))
ATable содержит ~ 19M строк, это будет удалить ~ 3M от этого. На данный момент я могу выполнить запрос только с LIMIT 100000
, и я не хочу сидеть здесь с phpmyadmin весь день, потому что каждое удаление (из 100 000 строк) работает около 1,5 минут.
Любые способы ускорить это или автоматизировать его?
MySQL 5.5
(? Как вы думаете, что это уже плохой дизайн DB если таблица содержит 20M строк)
Количество строк не является мерой хорошего или плохого дизайна стола. Нормализованы ли ваши таблицы? Это будет мерой хорошего дизайна стола ... – Argeman