у меня есть подобные запросы
SELECT
(SELECT GROUP_CONCAT(c) FROM t1) AS t1c,
(SELECT GROUP_CONCAT(c) FROM t2) AS t2c,
(SELECT GROUP_CONCAT(c) FROM t3) AS t3c
каждое из значений t(1/2/3)c
выше group_concat_max_len
на столько, что оно превышает значение по умолчанию на четырехкратное значение
моя голова думает только о выполнении нескольких запросов
SELECT c FROM t1;
SELECT c FROM t2;
SELECT c FROM t3;
и привязывать каждый к массиву и взрывать их, поэтому мне интересно, есть ли способ имитировать group_concat
вместо зацикливания в php, если он медленнее.
вы должны проверить это, запустив цикл в mysql, который объединяет все значения в огромном типе данных TEXT с версией php, но я сомневаюсь, что что-либо из этого когда-либо будет эффективным в любом случае. я сделал такую штуку с джаваскриптом, что бы нагрузка была на сервер. Aölso php всегда имеет ограничение по времени
@nbk будет ли использование group_concat, несмотря на достижение большой длины, быстрее, чем несколько запросов и циклов while?
Group_concat при таких размерах работает медленно. попробуй.
Измените
group_concat_max_len
, чтобы ваш сеанс был достаточно большим. Предполагая, что это не более, скажем, 10% оперативной памяти. ваша задача должна работать нормально. Это будет достаточно быстро.