Варианты разбивки слишком большого запроса SQL
У нас есть SQL сервер в котором стоит ограничение по размеру SQL запроса ~200кб. Я столкнулся с задачей поменять подход к получению данных через SELECT запрос куда передаётся большое количество ID для WHERE IN параметра, настолько большое что он исчерпывает ограничения на сервере.
Пока что я придумал следующие варианты обхода этого ограничения, буду признателен если можете подсказать ещё:
- Создавать временную таблицу и туда вставить необходимые ID значения поблочно (опять-таки чтобы не упереться в ограничение), а потом делать SELECT из неё внутри WHERE IN.
- Передать с запросом max_query_size с большим значением благо драйвер это позволяет
- Сделать поблочные запросы в изначальном SQL, что вряд ли возможно так как там используется группировка и агрегация.