Eu tenho uma tabela innoDB que registra usuários online. Ele é atualizado a cada atualização de página por um usuário para acompanhar quais páginas estão e sua última data de acesso ao site. Em seguida, tenho um cron que é executado a cada 15 minutos para excluir registros antigos.
Eu encontrei um 'Deadlock encontrado ao tentar trancar; tente reiniciar a transação 'por cerca de 5 minutos na noite passada e parece estar executando os INSERTs nesta tabela. Alguém pode sugerir como evitar esse erro?
=== EDIT ===
Aqui estão as consultas que estão sendo executadas:
Primeira visita ao site:
INSERT INTO onlineusers SET
ip = 123.456.789.123,
datetime = now(),
userid = 321,
page = '/thispage',
area = 'thisarea',
type = 3
Em cada atualização de página:
UPDATE onlineusers SET
ips = 123.456.789.123,
datetime = now(),
userid = 321,
page = '/thispage',
area = 'thisarea',
type = 3
WHERE id = 888
Cron a cada 15 minutos:
DELETE FROM onlineusers WHERE datetime <= now() - INTERVAL 900 SECOND
Em seguida, faz algumas considerações para registrar algumas estatísticas (ou seja, membros online, visitantes online).