#php #mysql
#php #mysql
Вопрос:
Мне просто интересно, есть ли какой-нибудь способ сохранить фрагмент php-скрипта отдельно от фактической веб-страницы, которая постоянно выполняется на сервере.
Например, у меня есть этот запрос MySQL; $sql = «ОБНОВИТЬ УСТАНОВЛЕННОЕ пользователями соединение = IF (NOW() — last_access_time> 3, 0, 1)»;
в основном он проверяет каждого пользователя в базе данных, который в данный момент использует веб-сайт. Требования веб-сайта заставляют меня делать это каждые 2 секунды почти на каждой странице.
похоже, что это создает много трафика на стороне сервера. Итак, есть ли какой-либо способ запустить этот запрос отдельно от веб-сайта? Или есть какой-либо другой способ решить эту проблему в целом?
Ответ №1:
Не уверен, как абстрагироваться от этого конкретного случая, но мне кажется, что вы пытаетесь сохранить в своей базе данных запись о том, активен ли пользователь в данный момент на сайте.
Как насчет этого вместо этого?
На каждой странице запускайте это:
$sql = "UPDATE users SET last_access_time = NOW() WHERE id=".$_SESSION['USERID'];
Затем в ваших сценариях, где вы ищете пользователей с подключением, сделайте это следующим образом:
$sql = "SELECT * FROM users WHERE last_access_time < NOW()-3";
То, как вы его запускаете сейчас, ваш сервер БД должен проходить через каждого пользователя каждый раз, когда кто-то попадает на страницу, чтобы установить статус активным или нет. Вместо этого вы можете обращаться к базе данных только каждый раз, когда вам действительно нужна эта информация.