Tengo una tabla innoDB que registra a los usuarios en línea. El usuario lo actualiza en cada actualización de la página para realizar un seguimiento de las páginas en las que se encuentra y su última fecha de acceso al sitio. Luego tengo un cron que se ejecuta cada 15 minutos para ELIMINAR registros antiguos.
Obtuve un 'Deadlock encontrado cuando trataba de obtener el bloqueo; intente reiniciar la transacción 'durante unos 5 minutos anoche y parece ser cuando ejecuta INSERT en esta tabla. ¿Alguien puede sugerir cómo evitar este error?
=== EDITAR ===
Estas son las consultas que se están ejecutando:
Primera visita al sitio:
INSERT INTO onlineusers SET
ip = 123.456.789.123,
datetime = now(),
userid = 321,
page = '/thispage',
area = 'thisarea',
type = 3
En cada página de actualización:
UPDATE onlineusers SET
ips = 123.456.789.123,
datetime = now(),
userid = 321,
page = '/thispage',
area = 'thisarea',
type = 3
WHERE id = 888
Cron cada 15 minutos:
DELETE FROM onlineusers WHERE datetime <= now() - INTERVAL 900 SECOND
Luego hace algunos recuentos para registrar algunas estadísticas (es decir: miembros en línea, visitantes en línea).