У меня есть запрос на удаление, который хорошо работает с небольшим количеством строк. Но теперь с строкой около 80 Кбайт происходит сбой из-за «тайм-аута»
Мои две таблицы такие:
TableA
------
| Column | type |
|------------|------------|
| link_id | bigint(40) |
| product_id | int(10) |
| parent_id | int(10) |
Table B
-------
| Column | type |
|-----------|---------|
| id | int(11) |
| parent_id | int(11) |
| child_id | int(11) |
Я делаю такой запрос, чтобы удалить
DELETE FROM TABLEA
WHERE link_id IN (
SELECT link_id FROM (
SELECT link_id, parent_id, product_id FROM TABLEA
UNION ALL
SELECT id, parent_id, child_id FROM TABLEB
) tbl
GROUP BY parent_id, product_id
HAVING count(*) = 1
ORDER BY parent_id
) ;
Но не самый оптимизированный.
Цель состоит в том, чтобы удалить из таблицы A все записи, отсутствующие в таблице B
для пары "parent_id / child_id".
в таблице A столбец "product_id" является "child_id".
Спасибо