온라인 사용자를 기록하는 innoDB 테이블이 있습니다. 사용자가 페이지를 새로 고칠 때마다 업데이트되어 자신이있는 페이지와 사이트에 대한 마지막 액세스 날짜를 추적합니다. 그런 다음 이전 레코드를 삭제하기 위해 15 분마다 실행되는 크론이 있습니다.
잠금을 시도 할 때 'Deadlock이 발견되었습니다. 어젯밤 약 5 분 동안 트랜잭션을 다시 시작하십시오.이 테이블에 INSERT를 실행할 때 나타납니다. 누군가이 오류를 피하는 방법을 제안 할 수 있습니까?
=== 편집 ===
실행중인 쿼리는 다음과 같습니다.
첫 번째 사이트 방문 :
INSERT INTO onlineusers SET
ip = 123.456.789.123,
datetime = now(),
userid = 321,
page = '/thispage',
area = 'thisarea',
type = 3
각 페이지 새로 고침에서 :
UPDATE onlineusers SET
ips = 123.456.789.123,
datetime = now(),
userid = 321,
page = '/thispage',
area = 'thisarea',
type = 3
WHERE id = 888
15 분마다 크론 :
DELETE FROM onlineusers WHERE datetime <= now() - INTERVAL 900 SECOND
그런 다음 일부 통계 (예 : 온라인 회원, 온라인 방문자)를 기록하기 위해 일부 계산을 수행합니다.