В функции group_concat нет ограничения на выборку limit:
https://bugs.mysql.com/bug.php?id=30098.
Вместо этого я ограничил размер group_concat_max_len до 132 символов, этого мне хватает чтобы вставить четыре 32 символьных хеша с запятой в качестве разделителя.
Выглядит вот так:
48c497081507eacd96f7dd383a424f51,0ad3ec30f1e8add18fca67f6e4c81177,9a261ddc794ce63f411b8b775c7d64c6,d103bbb956c675a235c2c8556617519e,
Запрос:
select group_concat(p.hash SEPARATOR ',') as hashes
from users as u
join photos as p on p.photoable_id = u.id
where p.photoable_type = 'photo'
and p.photoable_id in (...)
group by p.photoable_id
limit 0,40
Собственно вопрос, ограничение group_concat_max_len как то скажется на производительности или mysql все равно сначала получить ВСЕ hash, и уже потом, что получится запихает, а остальное отрежет? У меня выборка hash больше 1000.