Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Обработчик закрытия окна (https://javascript.ru/forum/misc/6631-obrabotchik-zakrytiya-okna.html)

nark03 11.12.2009 13:11

Цитата:

Сообщение от Gvozd (Сообщение 37690)
блин
типа так не судьба сделать?
DELETE FROM users WHERE last_time<TIME()-20

Просто если каждый клиент будет проверять активность остальных не велика ли это нагрузка?

Gvozd 11.12.2009 13:53

Цитата:

Сообщение от nark03
Просто если каждый клиент будет проверять активность остальных не велика ли это нагрузка?

если правильно все сделать, то все будет пучком
по-крайней мере пока вы не собиретесь написать вконтакт-2
а)вам надо для колонки с последним моментом активности юзера в БД сделать индекс. Тогда операция удаления неактивных пользователей будет достаточно быстра
запрос можно оптимизировать до
DELETE FROM active_users ORDER BY last_time WHERE last_time<TIME()-20 LIMIT 1
также можно использовать какой-нибудь семафор(например файл), или запускать удаление по cron-у, и тем самым наверняка ограничть количество запросов на удаление, без потери результата

nark03 11.12.2009 14:28

Спасибо, будем пробовать

subzey 12.12.2009 18:39

Цитата:

Сообщение от Gvozd (Сообщение 37697)
также можно использовать какой-нибудь семафор(например файл), или запускать удаление по cron-у, и тем самым наверняка ограничть количество запросов на удаление, без потери результата

А можно пойти по стопам Зива и Энди, и при каждом обращении (после выдачи результата) с вероятностью, скажем, 5%, удалять старые записи. А с вероятностью 1% делать OPTIMIZE TABLE.

Ну, как вариант исключительно :)

Gvozd 12.12.2009 18:55

Цитата:

Сообщение от subzey
Зива и Энди

кто такие?

subzey 12.12.2009 19:10

Разработчики PHP в том виде, в каком мы его знаем.
Подобным образом, с определенной вероятностью, пуржатся в пыхе мертвые сессии.

micscr 12.12.2009 19:43

В MySql команда DELETE физически данные не удаляет, а только помечает на удаление. Не вижу проблем со скоростью особенно при выборке на индексе.
Удаляет физически - OPTIMIZE TABLE, ну и новые INSERT пишут свои данные поверх помеченных на удаление.
Так что с 1% Зив и Энди как всегда рулят.


Часовой пояс GMT +3, время: 09:30.