У мене є таблиця innoDB, яка записує користувачів в Інтернеті. Користувач оновлює його при оновленні кожної сторінки, щоб відстежувати, на яких сторінках вони перебувають, та останню дату доступу до сайту. Потім у мене є крон, який працює кожні 15 хвилин для ВИДАЛЕННЯ старих записів.
У мене виявлено "Тупик, знайдений при спробі заблокувати замок; спробуйте перезапустити транзакцію протягом приблизно 5 хвилин минулої ночі, і, здається, це відбувається під час запуску INSERT в цю таблицю. Хтось може підказати, як уникнути цієї помилки?
=== EDIT ===
Ось такі запити, які виконуються:
Перший візит на сайт:
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
Тоді деякі підрахунки реєструють статистику (тобто: учасників в Інтернеті, відвідувачів в Інтернеті).