Спасибо, за ответ. Индексы, само собой есть. Тут еще такой момент, что за раз могут выбираться несколько десятков тысяч строк (они все нужны для обработки, поэтому LIMIT не вариант). Вероятно, время еще тратиться на пересылку данных.
Я еще не до конца разобрался в проекте (новая работа), но похоже придется переделывать структуру, чтобы выборка была меньше. Делать предвычисления, например.
Не нравится и объем, и скорость, и подход к структуре приложения. Я еще из тех времен, когда приложение на jquery выглядело как простой список навешенных на разные события и элементы колбэков. Не знаю, изменилось ли что-то с того времени. Но если делать какую-то mvc или mv структуру самому, то проще, мне кажется, взять что-то, что предоставляет это из коробки.
Сейчас читаю про Backbone и мне уже очень нравятся их модели и коллекции. Мне кажется, для приложения, вроде чата, где большинство данных представляет из себя различные списки, это именно то, что нужно. Однако, для взаимодействия с DOM нужна еще какая-то библиотека. Многие, почему-то, советуют Zepto, вместо jQuery.