मेरे वेबगैम में उपयोगकर्ता PHP के $ _SESSION में कैश किए गए कुछ खिलाड़ी की जानकारी रखते हैं। प्रत्येक बार जब वे गेम लोड करते हैं तो यह जांचता है कि सत्र मौजूद है, अगर नहीं, तो उन्हें एक MySQL डेटाबेस से प्लेयर जानकारी मिलती है और फिर यह $ _SESSION में संग्रहीत हो जाती है।तेज़ क्या है? File_exist या MySQL क्वेरी?
अब मेरी समस्या यह है कि, यदि खिलाड़ी की जानकारी किसी अन्य प्रक्रिया या प्लेयर द्वारा अपडेट की जाती है तो क्या होगा? वे अन्य प्लेयर के $ _SESSION कैश को अपडेट नहीं कर सकते हैं।
मैं जानता हूँ कि memcached सबसे शायद इस के लिए समाधान है, लेकिन मुझे यकीन है कि अगर मैं कुछ इस तरह के लिए समय लेना चाहिए नहीं कर रहा हूँ। इस के अलावा, $ _SESSION कैश मेरे लिए अच्छा कर रहा है।
- मैं इसके लिए एक MySQL तालिका बनाने के बारे में सोच रहा था जो हर अनुरोध पर पढ़ता है और यदि खिलाड़ी के लिए रिकॉर्ड है कि यह कैश को दोबारा शुरू करता है।
- एक अन्य समाधान फ़ाइल के नाम पर प्लेयर की आईडी के साथ निर्देशिका में फ़ाइल बनाना होगा। प्रत्येक अनुरोध PHP
file_exist
के साथ जांच करेगा यदि उसे कैश साफ़ करना चाहिए या नहीं।
तुम लोग क्या करना होगा? यह हर अनुरोध को निष्पादित करता है इसलिए यह अनुकूलित करने के लिए यह बहुत महत्वपूर्ण है।
डेटाबेस विकल्प के लिए जाना होगा, स्पीड वार एक अच्छी डेटाबेस स्कीमा के साथ अंतर नहीं होगा। लेकिन इसकी गति के बारे में नहीं, इसके बारे में बेहतर प्रबंधन के बारे में –
यदि यह बेहद असाधारण मामला नहीं है, तो आप हमेशा डेटाबेस के लिए जाते हैं। वास्तविक दुनिया में आरएमडीबी शायद फ्लैट फ़ाइल से तेज हो सकता है (यदि डेटा पहले से ही स्मृति या पूर्ण तालिका में लोड किया गया है, तो उपलब्ध स्मृति में फिट हो गया है।) – Dasun