Comment éviter mysql 'Impasse trouvé lorsque vous essayez d'obtenir le verrou; essayez de redémarrer l'opération"

J'ai une table innoDB qui enregistre des utilisateurs en ligne. Il est mis à jour à chaque actualisation de la page par un utilisateur de garder une trace des pages qui ils sont et leur dernière date d'accès au site. J'ai alors d'un cron qui s'exécute toutes les 15 minutes pour SUPPRIMER les anciens enregistrements.

J'ai eu un "Blocage trouvé lorsque vous essayez d'obtenir le verrou; essayez de redémarrer l'opération" pendant environ 5 minutes la nuit dernière et il apparaît lors de l'exécution d'Insertions dans ce tableau. Quelqu'un peut-il suggérer comment éviter cette erreur?

=== EDIT ===

Voici les requêtes en cours d'exécution:

Première Visite du site:

INSERT INTO onlineusers SET
ip = 123.456.789.123,
datetime = now(),
userid = 321,
page = '/thispage',
area = 'thisarea',
type = 3

Sur chaque actualisation de la page:

UPDATE onlineusers SET
ips = 123.456.789.123,
datetime = now(),
userid = 321,
page = '/thispage',
area = 'thisarea',
type = 3
WHERE id = 888

Cron toutes les 15 minutes:

DELETE FROM onlineusers WHERE datetime <= now() - INTERVAL 900 SECOND

Il fait ensuite quelques chiffres pour vous connecter certaines stats (c'est à dire: les membres en ligne, les visiteurs en ligne).

InformationsquelleAutor David | 2010-02-25