Как удалить запись из базы данных после 2 мин закрытия окна браузера пользователем?

интернет php mysql

Есть сайт знакомств, нужно вывести для каждого пользователя онлайн они или оффлайн.

Пользователь заходит в свой профиль, в базу данных заносится его id и это означает что он онлайн, когда он нажимает кнопку ВЫЙТИ то его id с базы удаляется и это означает что он оффлайн.
Но ели он не нажал кнопку ВЫЙТИ то запись в базе остается и получается что он всегда онлайн

Как удалить запись ну например если 2 мин пользователь не активен???


Примечание:
Андрей Санитаров

что такое memcached и ОЗУ ????

Примечание:
А каким образом можно прогнать чистку таблицы от лишних записей каждые N минут???

Примечание:
Возник новый вопрос КАК файл например index.php обновлять каждые 10 сек???

Примечание:
А можно в кроне указать php файл ???
Ответы:
Варианты:
1. Выводя список пользователей "кто сейчас онлайн" дёргайте из базы только тех, у кого последняя дата активности была не более N-минут назад. В минусах, при каждом действии пользователя придётся делать дополнительный update или insert (по ситуации). Хотя, скорее всего, это и так делается для поддержания session.
2. По крону, раз в N минут прогоняйте чистку таблицы от лишних записей.
3. Сохраняйте данные об "онлайности" пользователя не в базу, а в memcached со "сроком годности" в N минут. Этот вариант самый оптимальный по производительности, но потребует наличия memcached и некоторого дополнительного количества ОЗУ.
Memcached - это демон выполняющий кэширование и хранение временных данных в памяти сервера. ОЗУ - Оперативное Запоминающее Устройство. По английски - RAM (Random Access Memory). По простому - память.
Как нетрудно догадаться, операции по чтению/записи непосредственно с памятью существенно быстрее, чем дисковые операции при использовании СУБД.
К дополнению №2:
Настройте в кроне запуск раз в N минут скрипта, который удаляет в таблице все записи, у которых timestamp отличается от now() больше, чем на N минут.


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.