gelraen
12.08.2012 22:20 imax
Немножечко магии в виде select count(*) as count, substring(xml from E'<message from=\'([^\']*)\'') as from_jid from spool where xml like '<message%' group by from_jid order by count desc;
И получаем никому ненужные циферки:
5440 | juick@juick.com/Juick
1281 | rss.jabber.ru
...
738 | psto@psto.net/Psto
...
330 | bnw@bnw.im
Если кто не догадался — это количество сообщений от этих JID в offline storage сервера.
Жуйкобляди забивают на свой сервис и уходят с него, а сообщения скапливаются. Пстачеюзеры — лояльные и активные.
какая отборная хуета.
Почему?
потому что в /0 нету вообще никакой инфы о количестве пользователей одного и другого сервисов, потому нельзя даже вывести среднее количество оффлайн-сообщений на юзера, что можно было бы хоть как-то представить как "меру лояльности". А так это даже не средняя температура по больнице, а просто набор циферок.
И я это лишний раз продемонстрировал, притянув за уши циферки к некоторой произвольной интерпретации.
okay ._.
в следующий раз предупреждай
> select count(*)
facepalm
что вы таки имеете в виду?
Ты таким макаром вычитываешь все поля записей. Если написать
SELECT count(1) ...
то запрос пройдёт исключительно по индексу если таковой имеется и не будет обращаться за данными в таблицу.
Оптимизация, все дела.
данные всё равно нужны ведь. Но запомню, да.
В данном случае таки один хрен: http://paste.ubuntu.com/1145240