SELECT B.Id AS IdProxy, B.Ip, B.Country FROM sc_proxy B WHERE (SELECT COUNT(*) FROM sc_proxy_request_log C WHERE C.IdSite = '11' AND B.Ip = C.IpProxy) <= '3' ORDER BY B.Id DESC LIMIT 1
Есть таблица sc_proxy где хранятся все прокси.
Есть таблица sc_proxy_request_log в которой хранится лог запросов.
Задача получить Прокси из базы, при этом соблюдать условия:
IdSite - Это уникальный ID который указывает на лимит к конкретному сайту
3 - Это максимальное количество запросов которое нам подходит, т.е. если в sc_proxy_request_log есть 4 записи с этим прокси, то он не подходит под наше условие, т.к. не более чем 3 нам требуется.
Мой запрос фактически работает, но когда в sc_proxy_request_log становится слишком много записей, то выборка становится очень медленной.