У меня есть таблица innoDB, в которой записываются онлайн-пользователи. Он обновляется на каждой странице, обновляемой пользователем, чтобы отслеживать, на каких страницах они находятся, и дату их последнего доступа на сайт. Затем у меня есть cron, который запускается каждые 15 минут, чтобы УДАЛИТЬ старые записи.
У меня появился "Тупик", который пытался найти замок; попробуйте перезапустить транзакцию "около 5 минут прошлой ночью, и, похоже, при запуске INSERT в эту таблицу. Может кто-нибудь предложить, как избежать этой ошибки?
=== РЕДАКТИРОВАТЬ ===
Вот выполняемые запросы:
Первый визит на сайт:
INSERT INTO onlineusers SET
ip = 123.456.789.123,
datetime = now(),
userid = 321,
page = '/thispage',
area = 'thisarea',
type = 3
На каждом обновлении страницы:
UPDATE onlineusers SET
ips = 123.456.789.123,
datetime = now(),
userid = 321,
page = '/thispage',
area = 'thisarea',
type = 3
WHERE id = 888
Cron каждые 15 минут:
DELETE FROM onlineusers WHERE datetime <= now() - INTERVAL 900 SECOND
Затем происходит подсчет некоторых статистических данных (например, участники онлайн, посетители в Интернете).