Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2011, 06:34   #1
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию В каком виде хранить список он-лайн пользователей?

Проанализировал свой текущий проект и обнаружил проблему с хранением списка он-лайн пользователей.
Я использую таблицу MySQL типа Memory, в которой есть поля с данными о пользователе и поле времени последнего обновления. По полю времени последнего обновления Я удаляю "мёртвых" пользователей. Поле периодически запросом с клиента обновляется для сохранения корректности. Основная потеря времени происходит при обновлении данного поля.
Хочу исправить данный недостаток, возможно поменять весь механизм. Отсюда вопрос:
В каком виде лучше хранить список он-лайн пользователей?
Виталий Желтяков вне форума Ответить с цитированием
Старый 08.05.2011, 16:03   #2
graymaster
Форумчанин
 
Аватар для graymaster
 
Регистрация: 03.05.2011
Сообщений: 158
По умолчанию

Есть возможность использовать memcached ?
graymaster вне форума Ответить с цитированием
Старый 08.05.2011, 19:39   #3
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
Есть возможность использовать memcached ?
Да, есть. Только не пойму как. Нагрузка ожидается достаточно большая ~5 изменений в секунду.
Виталий Желтяков вне форума Ответить с цитированием
Старый 08.05.2011, 19:49   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

а распишите подробнее.... на чем теряете время?
ADSoft вне форума Ответить с цитированием
Старый 08.05.2011, 20:15   #5
graymaster
Форумчанин
 
Аватар для graymaster
 
Регистрация: 03.05.2011
Сообщений: 158
По умолчанию

Навскидку - помнить, когда последний раз обновлялись данные пользователя и "прореживать" время апдейта, до, к примеру, 1 раз в минуту.
5 запросов/сек это уники ? А сколько уников в минуту, что интереснее ? Если есть существенная разница (т.е., к примеру, 60 а не 300) то в этом может быть смысл.
graymaster вне форума Ответить с цитированием
Старый 08.05.2011, 23:29   #6
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Пишу систему из расчёта 300 пользователей он-лайн. Основные потери (иногда 4/5 от всего времени) тратятся на обновление поля последнего времени обновления таблицы он-лайн пользователей. Обновляется поле каждую минуту.
...
Всё понял причину тормозов. Хотел привести кусок кода и нашел ошибку в запросе.

Всем спасибо.
Виталий Желтяков вне форума Ответить с цитированием
Старый 09.05.2011, 21:18   #7
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Кстати если уж подняли тему, то действительно почему если есть возможность использовать memcached берете Mysql Memory таблицы. И вообще по опыту скажите может у кого какие проблемы были с этими временными таблицами? Лично я когда-то использовал их для одного проекта, но сильно напугал их размер, который они занимают в памяти (по сравнению с обычными) ... тем более вы хотите их использовать для онлайн юзеров ... ну есть у вас сейчас 300 пользователей, а вдруг в теории их окажется 1 000 - 10 000 .... не съедят всю память?)
Cronos20 вне форума Ответить с цитированием
Старый 10.05.2011, 08:17   #8
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
почему если есть возможность использовать memcached берете Mysql Memory таблицы
Высокая частота обновлений данных и необходимость получения выборок из этих данных.
Цитата:
Лично я когда-то использовал их для одного проекта, но сильно напугал их размер, который они занимают в памяти (по сравнению с обычными)
И Memory и Memcached занимают в памяти много места, но чтобы заполнить всю память - такое не реально.
Виталий Желтяков вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список пользователей организации TheBoss Microsoft Office Excel 4 26.11.2010 12:28
Графы. Хранение хранить список смежностей как хеш-таблицу. Чем не идеал? Kn793 Свободное общение 7 08.11.2010 17:55
В каком виде обрабатывать двоичные числа? x8i Общие вопросы C/C++ 2 17.05.2009 15:12
в каком виде хранится иконка в Exe-файле? как её из него вытащить/заменить? Holly1444 Общие вопросы Delphi 0 18.11.2006 13:56