2010-11-01 2 views
10

मैं एक लंबे समय के लिए SQLObject का उपयोग किया गया है, लेकिन देखा है कि SQLAlchemy पिछले कुछ वर्षों में एक बहुत अधिक लोकप्रिय हो गया है: http://www.google.com/trends?q=sqlobject,+sqlalchemyक्या मुझे SQLObject, SQLAlchemy, या SQLAlchemy + Elixir का उपयोग करना चाहिए?

वहाँ बाध्यकारी कारण SQLAlchemy करने के लिए स्विच करने के लिए कर रहे हैं? SQLObject के सापेक्ष इसका प्रदर्शन कैसा है? इसकी उपयोगिता? और Elixir का उपयोग करने के लिए जोड़ा प्रदर्शन ओवरहेड क्या है?

मेरी ज़रूरतें बुनियादी, सरल सीआरयूडी हैं। कुछ भी विदेशी नहीं है।

मैंने this related question देखा है, लेकिन 1+ साल पहले यह पूछा गया था और अधिक प्रतिक्रिया नहीं थी।

उत्तर

10

मैंने टर्बोगियर्स 0.9 के हिस्से के रूप में बड़े पैमाने पर एसक्लॉब्जेक्ट का उपयोग किया, लेकिन स्क्लॉल्केमी + एलिक्सीर को टर्बोगियर्स के पहले भी एसक्लॉब्जेक्ट के प्रतिस्थापन में गिरावट के रूप में स्विच किया।

नोट भी अमृत के बिना, SQLAlchemy यह है कि खुद कथात्मक शैली वर्ग परिभाषाओं है: http://docs.sqlalchemy.org/en/rel_1_0/orm/extensions/declarative/index.html

आप प्रदर्शन के बारे में अनिश्चित हैं, तो यह बहुत ज्यादा काम अपने अनुप्रयोग में एक स्थानापन्न के रूप अमृत में ड्रॉप करने के लिए नहीं होना चाहिए और कुछ त्वरित प्रोफाइलिंग करें। मुझे लगता है कि एसक्यूओब्जेक्ट/एसक्यूएल/एसक्यूएलए + एलिक्सीर पीले के बीच प्रदर्शन अंतर, डेटाबेस में/से डेटा लिखने और पढ़ने के समय की तुलना में।

ध्यान दें कि SQLAlchemy relationships और columns के लिए उत्सुक/आलसी लोड हो रहा है, जो मामलों की बहुत सारी में अपने ऐप की स्मृति पदचिह्न & प्रदर्शन में मदद करता है पर बहुत अधिक नियंत्रण मिलता।

शायद स्विच करने के लिए सबसे अधिक आकर्षक कारण यह है कि एसक्लएल्किमी यह है कि इसे सक्रिय रूप से विकसित किया जा रहा है (हालांकि मुझे एसक्लॉब्जेक्ट की देव स्थिति के बारे में बहुत कुछ पता नहीं है)। द्वितीयक कारण के रूप में, आपको आश्वासन दिया जा सकता है कि यदि आपकी ज़रूरतें अधिक जटिल हो जाती हैं, तो यह संभव है कि कोई और ऐसा व्यक्ति है जो पहले से ही एसक्यूएलकेमी के साथ एसक्यूएल के गोल छेद में पाइथन ऑब्जेक्ट्स के स्क्वायर पेग को धक्का देने का प्रयास कर चुका है।