Во-первых, проверьте параметр max_execution_time.
Во-вторых, если у вас перед PHP стоит nginx, то у него может быть таймаут ожидания ответа от бэкенда.
Приходилось как-то делать подобные костыли. Мы просто помещали нужный php-код в файл, перед ним добавляли инициализацию массивов POST/GET нужными значениями и запускали в командной строке, считывая stdout.
На основе заголовка X-Accel-Redirect и директивы internal в nginx можно реализовать любую логику по ограничению доступа. И в отличии от отдачи файла непосредственно php-скриптом, этот вариант намного эффективней, т.к. php-скрипт только проверку доступа будет делать, а отдачей уже займется nginx.
Пример использования: www.opennet.ru/base/net/nginx_x_accel_redirect.txt.html
Если я правильно понял, вам нужно условие "существует комментарий от юзера 1 и сущесвует комментарий от юзера не 1 для одной конкретной страници". Тогда вот это условие:
EXISTS (SELECT 1 FROM comments WHERE user=1 AND page_id=1)
AND
EXISTS (SELECT 1 FROM comments WHERE user<>1 AND page_id=1)
Причины могут быть разные. Когда я с таким сталкивался, мне помогало одно из двух:
1. Если используете пул подключений к бд (в PDO не помню как это называется, кажется персистентное подключение или как-то так...), то попробуйте отключить его
2. В настройках мускла попробуйте увеличить параметр max_allowed_packet
Но если честно, не уверен что это ваш случай, хотя всякое может быть
Видеолекции Школы Анализа Данных от Яндекса shad.yandex.ru/lectures
Как раз связано напрямую с Big Data, думаю вам должно быть интересно. Я в свое время для раширения кругозора с удовольствием посмотрел несколько лекций по машинному обучению.
Пробовал фикстуры - не подходят т.к. есть много выбороко из 5-8 связанных таблиц.
Странно, нам фикстуры подходят и для бОльшего числа таблиц и выборок. Самое сложное было сначала их спроектировать и аккуратно описать, зато потом они прекрасно служат своим целям и мы о них даже и не задумываемся почти.