यह स्मृति रिसाव केवल एक समस्या होगी यदि यह "स्मृति समाप्त" त्रुटि के साथ स्क्रिप्ट को मार रहा है। PHP किसी भी अनुपयोगी वस्तु/चर को अपने आप कूड़ा-करकट इकट्ठा कर लेगा, लेकिन संग्राहक तब तक किक नहीं करेगा जब तक कि कचरा संग्रह एक बहुत महंगा ऑपरेशन हो सकता है।
यदि आप समान वस्तुओं/चरों का लगातार पुन:उपयोग कर रहे हैं, तो भी स्मृति उपयोग में वृद्धि देखना सामान्य है - यह तब तक नहीं है जब तक कि स्मृति उपयोग एक निश्चित स्तर से अधिक नहीं हो जाता है कि कलेक्टर आग लगा देगा और घर को साफ कर देगा।
मुझे संदेह है कि यदि आप उपयोगकर्ता आईडी को समूहों में बैचते हैं और कम अपडेट जारी करते हैं, तो प्रत्येक के साथ अधिक रिकॉर्ड बदलते हैं, तो आप चीजों को बहुत तेजी से चला सकते हैं। जैसे निम्न कार्य करें:
UPDATE user_roundscores SET ursUpdDate=NOW() WHERE ursUserTeamIdFK IN (id1, id2, id3, id4, id5, etc...)
इसे एक-अपडेट-प्रति-उपयोगकर्ता करने के बजाय। DB इंटरफ़ेस परत के माध्यम से कम राउंड-ट्रिप और सर्वर पर अधिक समय =तेज़ चलना।
साथ ही, अब इसे लाखों उपयोगकर्ताओं तक विस्तारित करने के प्रभाव पर विचार करें, जैसा कि आप एक टिप्पणी में कहते हैं। एक लाख अलग-अलग अपडेट को चलने में गैर-तुच्छ समय लगेगा, इसलिए NOW()
"स्थिर" नहीं होगा। यदि पूर्ण रन करने में 5 मिनट लगते हैं, तो आपको ursUpdDate
की एक विस्तृत विविधता प्राप्त होगी टाइमस्टैम्प। आप एक NOW()
. को कैशिंग करने पर विचार कर सकते हैं सर्वर-साइड वैरिएबल में कॉल करें और उस वेरिएबल के लिए अपडेट जारी करें:
SELECT @cachednow :p NOW();
UPDATE .... SET ursUpDate = @cachednow WHERE ....;