मेरे पास एक innoDB तालिका है जो ऑनलाइन उपयोगकर्ताओं को रिकॉर्ड करती है। यह उपयोगकर्ता द्वारा ताज़ा किए गए प्रत्येक पृष्ठ पर इस बात पर नज़र रखता है कि वे किस पृष्ठ पर हैं और साइट पर उनकी अंतिम पहुँच तिथि है। मेरे पास एक क्रोन है जो हर 15 मिनट में पुराने रिकॉर्ड को चलाता है।
मुझे एक 'डेडलॉक मिला जब ताला पाने की कोशिश कर रहा था; कल रात लगभग 5 मिनट के लिए लेनदेन को पुनः आरंभ करने का प्रयास करें और जब यह INSERTs को इस तालिका में चला रहा हो तो ऐसा प्रतीत होता है। क्या कोई सुझाव दे सकता है कि इस त्रुटि से कैसे बचा जाए?
=== EDIT ===
यहां वे प्रश्न हैं जो चल रहे हैं:
पहली साइट पर जाएँ:
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
यह तब कुछ आँकड़े (यानी: सदस्यों ऑनलाइन, आगंतुकों ऑनलाइन) लॉग इन करने के लिए कुछ मायने रखता है।