ब्लॉग पर वापस
Tutorial3 मिनट पढ़ें

FiveM डेटाबेस गाइड: oxmysql और MySQL में महारत हासिल करें

Master FiveM डेटाबेस स्क्रिप्टिंग oxmysql के साथ। क्वेरीज, प्रिपेयर्ड स्टेटमेंट्स, असिंक्रोनस पैटर्न्स और MySQL प्रदर्शन टिप्स जो हर FiveM डेवलपर को जानना चाहिए।

Agency Scripts

Agency Scripts के संस्थापक और प्रमुख डेवलपर

FiveM में डेटाबेस क्यों महत्वपूर्ण हैं

हर गंभीर FiveM सर्वर को स्थायी डेटा भंडारण की जरूरत होती है। खिलाड़ी इन्वेंटरी, बैंक खाते, वाहन स्वामित्व, फोन संपर्क, और नौकरी रिकॉर्ड सभी को सर्वर पुनः आरंभ होने पर भी जीवित रहना चाहिए। MySQL FiveM पारिस्थितिकी तंत्र में मानक डेटाबेस प्रणाली है, जिसमें MariaDB एक लोकप्रिय फोर्क है जो बेहतर प्रदर्शन प्रदान करता है। अपने डेटाबेस को सेटअप, क्वेरी, और अनुकूलित करना समझना विश्वसनीय रोलप्ले सर्वर बनाने के लिए आवश्यक है जो सैकड़ों समवर्ती खिलाड़ियों को बिना डेटा हानि के संभाल सके।

oxmysql सेट अप करना

oxmysql रिसोर्स FiveM में MySQL कनेक्टिविटी के लिए आधुनिक मानक है, जो पुराने mysql-async और ghmattimysql लाइब्रेरीज़ को प्रतिस्थापित करता है। इसे सेटअप करने के लिए, नवीनतम रिलीज़ डाउनलोड करें, इसे अपने resources फ़ोल्डर में रखें, और कनेक्शन स्ट्रिंग को अपने server.cfg के साथ set mysql_connection_string. कनेक्शन स्ट्रिंग का प्रारूप है mysql://user:password@host/database और कनेक्शन पूलिंग, टाइमआउट, और SSL के लिए अतिरिक्त पैरामीटर का समर्थन करता है। सुनिश्चित करें कि oxmysql किसी भी संसाधन पर निर्भर होने से पहले शुरू हो जाए, इसे अपनी ensure क्रम में जल्दी रखें।

Queries लिखना

oxmysql कई क्वेरी विधियां प्रदान करता है: MySQL.query SELECT स्टेटमेंट्स के लिए जो पंक्तियाँ लौटाते हैं, MySQL.update UPDATE और DELETE स्टेटमेंट्स के लिए जो प्रभावित पंक्ति गणना लौटाते हैं, MySQL.insert INSERT स्टेटमेंट्स के लिए जो अंतिम insert ID लौटाते हैं, और MySQL.scalar एकल मान लौटाने वाले प्रश्नों के लिए। हमेशा parameterized queries का उपयोग करें ? SQL इंजेक्शन हमलों को रोकने के लिए प्लेसहोल्डर। मानों को सीधे क्वेरी स्ट्रिंग में जोड़ने के बजाय दूसरे तर्क में टेबल के रूप में पैरामीटर पास करें।

Async Patterns और Promises

सभी oxmysql ऑपरेशन असिंक्रोनस होते हैं ताकि डेटाबेस संचार के दौरान सर्वर थ्रेड ब्लॉक न हो। आप कॉलबैक-शैली सिंटैक्स का उपयोग कर सकते हैं जहाँ आप अंतिम तर्क के रूप में एक फ़ंक्शन पास करते हैं, या प्रॉमिस-आधारित सिंटैक्स का उपयोग कर सकते हैं MySQL.query.await के अंदर Citizen.CreateThread. await सिंटैक्स अधिक साफ़ पढ़ाई देता है और callback नेस्टिंग से बचाता है, लेकिन याद रखें कि इसे केवल coroutines के अंदर ही उपयोग किया जा सकता है। सर्वर स्टार्टअप डेटा लोडिंग के लिए, इसका उपयोग करें MySQL.ready function यह सुनिश्चित करने के लिए कि डेटाबेस कनेक्शन स्थापित है इससे पहले कि प्रारंभिक क्वेरी चलाएं।

Schema डिज़ाइन सर्वोत्तम प्रथाएँ

अपने डेटाबेस तालिकाओं को उचित इंडेक्स के साथ डिजाइन करें उन कॉलमों पर जिन्हें आप अक्सर क्वेरी करते हैं, जैसे खिलाड़ी पहचानकर्ता। प्रत्येक कॉलम के लिए उपयुक्त डेटा प्रकार का उपयोग करें ताकि भंडारण कम हो और क्वेरी गति बेहतर हो। जब आपको लचीले स्कीमा की आवश्यकता हो तो JSON डेटा को TEXT कॉलम में संग्रहित करें, लेकिन JSON संरचनाओं के अंदर बार-बार क्वेरी करने से बचें क्योंकि यह इंडेक्स अनुकूलन को बायपास करता है। संबंधित तालिकाओं के बीच विदेशी कुंजी संबंध बनाएँ ताकि डेटा अखंडता बनी रहे, और जब कई संबंधित सम्मिलन या अपडेट को एक साथ सफल या विफल होना हो तो लेनदेन का उपयोग करने पर विचार करें।

ऑप्टिमाइज़ेशन और रखरखाव

धीमी क्वेरी लॉग की जांच करके और EXPLAIN के साथ निष्पादन योजनाओं का विश्लेषण करके अपने डेटाबेस प्रदर्शन की निगरानी करें। डेटाबेस राउंड ट्रिप्स को कम करने के लिए अक्सर एक्सेस किए गए डेटा को Lua तालिकाओं का उपयोग करके सर्वर मेमोरी में कैश करें। oxmysql कॉन्फ़िगरेशन के माध्यम से कनेक्शन पूलिंग लागू करें ताकि समवर्ती क्वेरियों को कुशलतापूर्वक संभाला जा सके। नियमित डेटाबेस रखरखाव कार्य जैसे तालिकाओं का अनुकूलन और हटाए गए खिलाड़ियों के अनाथ रिकॉर्ड की सफाई निर्धारित करें। हार्डवेयर विफलताओं या भ्रष्ट तालिकाओं से विनाशकारी डेटा हानि को रोकने के लिए mysqldump या स्वचालित बैकअप समाधानों का उपयोग करके अपने डेटाबेस का दैनिक बैकअप लें।

शुरू करने के लिए तैयार?

हमारी शॉप से स्क्रिप्ट लें, या सपोर्ट, अपडेट और आगे आने वाली चीज़ों की झलक के लिए Discord से जुड़ें।