相关疑难解决方法(0)

如何避免mysql'试图锁定时发现死锁; 尝试重启事务'

我有一个innoDB表记录在线用户.它会在用户每次刷新页面时更新,以跟踪他们所在的页面以及他们上次访问网站的日期.然后,我有一个每15分钟运行一次以删除旧记录的cron.

我得到了一个'试图锁定时发现的死锁; 尝试重新启动事务'昨晚约5分钟,似乎是在运行INSERT到此表时.有人可以建议如何避免这个错误?

===编辑===

以下是正在运行的查询:

首次访问网站:

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

在每个页面刷新:

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

Cron每15分钟一次:

DELETE FROM onlineusers WHERE datetime <= now() - INTERVAL 900 SECOND
Run Code Online (Sandbox Code Playgroud)

然后它会记录一些统计数据(即:在线成员,在线访客).

mysql deadlock

261
推荐指数
5
解决办法
33万
查看次数

标签 统计

deadlock ×1

mysql ×1