запрос с subquery?
DELETE FROM b_user_profile_record
WHERE HISTORY_ID IN(
SELECT ID FROM b_user_profile_history
{$where}
)
Который даёт slow лог
# Query_time: 230.422565 Lock_time: 0.000238 Rows_sent: 0 Rows_examined: 42090120
use table;
SET timestamp=1605087276;
DELETE FROM b_user_profile_record
WHERE HISTORY_ID IN(
SELECT ID FROM b_user_profile_history
WHERE USER_ID = 491169
);
Почему нельзя было сделать например так:
DELETE b_user_profile_record FROM b_user_profile_record
JOIN b_user_profile_history
ON b_user_profile_history.ID = b_user_profile_record.HISTORY_ID
WHERE b_user_profile_history.USER_ID = 491169;
что гораздо быстрее?
@VirtualWhiskers Евгений, можете пожалуйста вот это посмотреть? Я не прав?
потому что метод универсальный и фильтр может быть какой угодно
Ок. Ну это нормально, что при попытке авторизоваться через соц сеть mail.ru, подключённую стандартно, выполняется запрос на 230 секунд и пользователь получает 504ю ошибку? То есть авторизоваться через соц сеть невозможно. Думал, может индексы какие-то повесить и решить эту проблему, но из того, что нагуглил, выходит что индексы там не помогут.
Обсуждают сегодня