delete o1
FROM b_user_access_check o1, b_user_access_check o2
WHERE o1.id > o2.id AND o1.USER_ID = o2.USER_ID
Причина - большое кол-во дубликатов в таблице b_user_access_check, а запрос (выше) не корректно чистит их.
Для решения испольуем запрос очистки дубликатов через временную таблицу
CREATE TEMPORARY TABLE `t_temp` as ( SELECT DISTINCT `USER_ID`, `PROVIDER_ID` FROM `b_user_access_check` GROUP BY `USER_ID`, `PROVIDER_ID` );
TRUNCATE TABLE `b_user_access_check`;
INSERT INTO `b_user_access_check` (`USER_ID`, `PROVIDER_ID`) SELECT `USER_ID`, `PROVIDER_ID` FROM `t_temp`;