[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кто онлайн
123456
Я додумался вот до чего:
создаем таблицу
id -уникальный ключ
id_user - id пользователя
date - time() последнего входа

когда пользователь авторизован выполняется скрипт:

Удаляем с таблицы всех пользователей, у которых date меньше чем 300
Проверяем или есть уже такой id_user в таблице. Если есть, то обновляем date, а если нет, то создаем.


Кто как думает? Может есть у кого какие варианты?

Посещаемость более 10000

inpost
удалять надо в фоновом режиме.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
dron4ik
сильно много чето запросов...

тупо берем и апдейтив время в mktime() в поле которое создали при регистрации...

ну и достаем всех у кого date > (mktime() - 15*60) и получим псевдо онлайн которые за последние 15 минут обновляли страничку))

ни удалений ни проверок...

_____________
Ex3m.com.ua — Активный образ жизни
123456
dron4ik,
т.е. при каждом обновлении страницы через UPDATE обновляем столбец со временем последнего обновления?

А если в БД 100000 пользователей? А потом выборку делать, нагрузки большой не будет?
dron4ik
Цитата (123456 @ 3.02.2013 - 06:56)
dron4ik,
т.е. при каждом обновлении страницы через UPDATE обновляем столбец со временем последнего обновления?

А если в БД 100000 пользователей? А потом выборку делать, нагрузки большой не будет?

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

А нагрузка уж точно не больше....

_____________
Ex3m.com.ua — Активный образ жизни
inpost
123456
Конечно будет нагрузка. Поэтому и придумали отдельную таблицу для хранения подобных данных.
Но так как у тебя МАЛО посетителей, то можешь не "заморачиваться" с отдельной таблицей и делать всё в основной - таблица юзеров.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
123456
если 100000 пользователей, то можно не создавать таблицу?
inpost
123456
Да, об этом я выше написал. Но тоже всё зависит от того, какая по объему сама таблица.
Тут проще не создавать до той поры, пока не покажется, что пора оптимизировать, так как медленно работает - тогда искать новые пути решения.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
123456
Спасибо
dron4ik
123456
Отдельная таблица может дать возможность писать дополнительную статистику, не нагружая основную таблицу... к примеру с чего человек заходил последний раз... как в ВК, телефончики всякие высвечивает)

_____________
Ex3m.com.ua — Активный образ жизни
vasa_c
Цитата
Проверяем или есть уже такой id_user в таблице. Если есть, то обновляем date, а если нет, то создаем.

REPLACE INTO

на таблицу ENGINE=Memory повесить

_____________
Блог ГО | Таблица символов Юникода | Графомания
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.