Ho una tabella innoDB che registra gli utenti online. Viene aggiornato su ogni aggiornamento della pagina da parte di un utente per tenere traccia delle pagine su cui si trovano e della loro ultima data di accesso al sito. Ho quindi un cron che viene eseguito ogni 15 minuti per eliminare i vecchi record.
Ho trovato un 'deadlock' quando cercavo di bloccare; prova a riavviare la transazione 'per circa 5 minuti la scorsa notte e sembra essere durante l'esecuzione di INSERT in questa tabella. Qualcuno può suggerire come evitare questo errore?
=== MODIFICA ===
Ecco le query in esecuzione:
Prima visita al sito:
INSERT INTO onlineusers SET
ip = 123.456.789.123,
datetime = now(),
userid = 321,
page = '/thispage',
area = 'thisarea',
type = 3
Ad ogni aggiornamento della pagina:
UPDATE onlineusers SET
ips = 123.456.789.123,
datetime = now(),
userid = 321,
page = '/thispage',
area = 'thisarea',
type = 3
WHERE id = 888
Cron ogni 15 minuti:
DELETE FROM onlineusers WHERE datetime <= now() - INTERVAL 900 SECOND
Quindi conta alcuni dati per registrare alcune statistiche (es: membri online, visitatori online).