ets: चयन बनाम मिनेसिया: चुनें जो उपयोग करने के लिए बेहतर है। और इन दोनों में से किसी एक को सम्मिलन और हटाने के मामले में भी हमें उपयोग करना चाहिए। मैं ejabberd पर काम कर रहा हूं। किसी भी पॉइंटर्स ?जो ets और mnesia के बीच अधिक प्रभावशाली है
उत्तर
tl; डॉ
वे विभिन्न प्रयोजनों के लिए बनाया उपकरण हैं: ईटीएस एक तेजी से कश्मीर/वी की दुकान है, Mnesia एक डेटाबेस उन्हें ऊपर बनाया गया है। उस टूल का उपयोग करें जो आपके उपयोग के मामले में फिट बैठता है।
चर्चा
Mnesia ईटीएस/DETS के शीर्ष पर बनाया गया है। जो अधिक सुविधाएं आप खोज रहे हैं, उनके लिए अधिक कुशलता से नीचे आती है। यदि आपके पास कोई अतिरिक्त तर्क नहीं है, तो इंडेक्स के लिए एक साधारण कुंजी और केवल मेमोरी या डिस्क से पूरी तरह से टेबल का उपयोग करेगी, तो ईटीएस और मैनेशिया के बीच कोई अंतर नहीं है और आप किसी भी मेनेसिया सुविधाओं का उपयोग नहीं करेंगे।
यदि दूसरी तरफ, आपको डेटा पर एक से अधिक इंडेक्स की आवश्यकता है, तो कुछ कैशिंग व्यवहार को कार्यान्वित करना चाहते हैं, ऑन-डिस्क दृढ़ता की आवश्यकता है, लेकिन कैश इंडेक्स प्रदर्शन, और अन्य चीजें जो आप डेटाबेस सिस्टम से अपेक्षा करते हैं, फिर आपको या तो ईटीएस/डीईटीएस के शीर्ष पर मेनेसिया-प्रकार की विशेषताओं को लागू करना होगा या बस मेनेसिया का उपयोग करना होगा।
प्रोटोटाइप (या उत्पादन में सुविधाओं के शुरुआती संस्करणों पर भी) जब मैं कुछ ईटीएस टेबल के साथ शुरू करता हूं, तो उन जगहों को ढूंढना शुरू करें जहां मुझे डेटा क्रमबद्ध और डिस्क पर डेटा चाहिए, फिर मुझे एहसास है कि मुझे एकाधिक इंडेक्स आदि की आवश्यकता है और हवा कई डेटा प्रबंधन सामग्री को आगे बढ़ाना जो प्रारंभ में ईटीएस में मैनेसिया में था। यदि आप डेटा पहुंच की अवधारणा को सही तरीके से दूर करते हैं तो यह आपके सिस्टम के इस हिस्से के कार्यान्वयन को किसी भी तरह से बदलने का मुद्दा नहीं है। यदि आपके पास अपने मॉड्यूल में बिखरे हुए कॉल का चयन किया गया है, तो संभवतः आपके पास अन्य वास्तुकला के मुद्दे हैं जो कि ईटीएस बनाम मैनेसिया से अधिक महत्वपूर्ण हैं।
बावजूद तुम क्या प्रयोग करते हैं, सुनिश्चित करें कि आप पूरे सिस्टम के लिए सभी राज्य के एक केंद्रीय भंडार के रूप में एक पूरे सिस्टम में अड़चन पैदा की तरह कुछ नहीं कर रहे हैं सुनिश्चित करें। यह एक गलती है जिसमें मैं बहुत से लोगों को देखता हूं (सी/पायथन/$ अनिवार्य_लंग + पोस्टग्रेस/मारियाडीबी/$ आरबीडीएमएस) पृष्ठभूमि की तरह।
एक उच्च स्तर पर राज्य प्रतिनिधित्व की वास्तुशिल्प चर्चा के लिए ErlMUD Commentary: Architecture, Locations के अनुच्छेद 2-6 पढ़ें।
- 1. Erlang: Mnesia: एक पंक्ति
- 2. एंड्रॉइड - जो अधिक कुशल है?
- 3. mnesia क्लस्टर (योजना)
- 4. ndb.BlobProperty बनाम BlobStore: जो अधिक निजी और अधिक सुरक्षित है
- 5. जो अधिक कुशल है? अधिक कोर या अधिक CPUs
- 6. एमवीवीएम और कमांड जो अधिक GUI
- 7. एसक्यूएल: के बीच और में (जो तेजी से होता है)
- 8. gen_server एक dict बनाम मेनेसिया टेबल बनाम ets
- 9. शब्दकोश बनाम वस्तु - जो अधिक कुशल है और क्यों?
- 10. सबसे प्रभावशाली लिस्प एप्लिकेशन क्या है?
- 11. जेपीजी या पीएनजी - जो अधिक कुशल है?
- 12. जो अधिक बेहतर है? गार्ड या मामला?
- 13. Encapsulation का "शिखर" - प्रभावशाली सी ++
- 14. प्रवाह में नियंत्रण के बीच और अधिक स्थान सेट करना
- 15. छवि पर प्रभावशाली रंग ढूंढें
- 16. howto एन्क्रिप्ट erlang RPC कॉल (और Mnesia प्रतिकृति) और अन्य यातायात
- 17. "आवश्यक" प्रभावशाली भाषाओं में रिकर्सन का उपयोग
- 18. एक सरणी में दशमलव प्रभावशाली संख्या
- 19. स्कालज़ में कार्य और आईओ के बीच क्या अंतर है?
- 20. क्या इससे अधिक या उससे अधिक के बीच कोई प्रदर्शन अंतर है?
- 21. मोंगो अधिक से अधिक और
- 22. हाथ सीपीयू में क्यों हस्ताक्षर किए गए प्रकार अधिक प्रभावशाली हैं?
- 23. क्या एक सॉकेट जो खुला है और जो सॉकेट जुड़ा हुआ है, के बीच का अंतर क्या है?
- 24. टिप्पणी शैली: प्रभावशाली या तीसरा व्यक्ति
- 25. पढ़ने() और pread() के बीच, किस तरह से अधिक कुशल है?
- 26. सी # के बीच> 0 और> = 1 जो तेज़ और बेहतर है?
- 27. प्रभावी, अधिक प्रभावी और प्रभावी आधुनिक सी ++ (और एसटीएल) पढ़ने के लिए पसंदीदा अनुक्रम क्या है?
- 28. "। +" और "। +?" के बीच अंतर
- 29. कैस्केड और कोरनेटिव के बीच, दो मुख्य ब्लैकबेरी प्लेबुक सी ++ फ्रेमवर्क, जो उपयोग करना आसान है?
- 30. आईओसी, एओपी और अधिक
"यदि आपके पास अपने मॉड्यूल में बिखरे हुए कॉल का चयन किया गया है, तो संभवतः आपके पास अन्य वास्तुकला के मुद्दे हैं जो ईटीएस बनाम मैनेसिया से अधिक महत्वपूर्ण हैं।" यह महत्वपूर्ण है। Decoupling और मॉड्यूलरिटी हमेशा अच्छे हैं। – Qqwy