2012-09-16 13 views
6

के लिए उपयोग करने के लिए सर्वश्रेष्ठ MySQL स्टोरेज इंजन मैं सत्र चर को संग्रहीत करने के लिए MySQL का उपयोग करना चाहता हूं। जो मैं समझता हूं उससे इसका मतलब है कि प्रत्येक पृष्ठ अनुरोध पर एक पढ़ा जाएगा और तालिका में एक लिखा होगा।PHP सत्र भंडारण

कौन सा MySQL स्टोरेज इंजन इस कार्य के लिए सबसे उपयुक्त है? माईसाम, इनो डीबी, मारियाडीबी (जिसे मैं PHPMyAdmin में नहीं देखता), मेमोरी, या पूरी तरह से कुछ और?

उत्तर

8

"सर्वश्रेष्ठ" कुछ भी नहीं मतलब है। आपको अपनी बाधाओं को व्यक्त करने की आवश्यकता है: क्या आपको स्थिरता की आवश्यकता है? स्थायित्व? उच्च उपलब्धता? प्रदर्शन? इन सभी गुणों का संयोजन? क्या आप अपने सत्रों को खो सकते हैं? क्या वे स्मृति में फिट हो सकते हैं? क्या आपको एक ही डेटा में समवर्ती पहुंच का समर्थन करने की आवश्यकता है?

अधिक संदर्भ के बिना, मैं इनो डीबी का चयन करूंगा जो सबसे संतुलित स्टोरेज इंजन है। यह ओएलटीपी अनुप्रयोगों, एसीआईडी ​​लेनदेन, अच्छी विश्वसनीयता, और समझदार समेकन प्रबंधन के लिए सही प्रदर्शन प्रदान करता है। सत्र चर का उपयोग प्राथमिक कुंजी का उपयोग करके किया जाएगा, और यह ऑपरेशन InnoDB के साथ बहुत ही कुशल है।

अब यदि प्रदर्शन वास्तव में एक बाधा है, तो मैं एक नोएसक्यूएल इंजन (यानी MySQL नहीं) का उपयोग करूंगा। सत्र डेटा स्टोर करने के लिए, Redis आमतौर पर बहुत अच्छी नौकरी करता है, और एकीकृत और तैनाती के लिए पर्याप्त आसान है।

MyISAM सबसे आम (कई साझा होस्टिंग संकुल केवल आप MyISAM का उपयोग करते हैं) है:

+0

उत्कृष्ट जवाब। –

1

मेमोरी स्टोरेज इंजन सबसे अच्छा विकल्प लगता है। ध्यान रखें कि यह अस्थायी सत्रों के लिए अच्छा है।

http://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html

+0

क्या यह कोई समस्या नहीं होगी यदि मेरे पास लोड बैलेंसर है क्योंकि इंजन डिस्क पर डेटा नहीं लिखता है और सर्वर स्मृति साझा नहीं करते हैं? साथ ही, यदि सर्वर क्रैश हो जाता है या पुनरारंभ होता है तो क्या मैं अपना पूरा डेटा खो दूंगा? – qwertymk

0

यह कैसे आप "betterness" का मूल्यांकन पर निर्भर करता है। इसके अलावा यह रिश्ते नियंत्रण पहलू में सीमित है, इसलिए आप इसे वास्तव में तेज़ और आसान बनाते हैं। यदि आप कई होस्टिंग परिदृश्यों में पोर्टेबिलिटी और तेज़ कार्यान्वयन चाहते हैं, तो MYISAM सबसे अच्छा है।

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

जहां तक ​​डेटा पोर्टेबिलिटी का संबंध है, एक इंनोडीबी डेटाबेस पूरी तरह से माईसैम द्वारा स्वीकार किया जाएगा (क्योंकि माईसाम डेटा अखंडता की जांच नहीं करता है: "उपयोगकर्ता डेटाबेस में कोई उपयोगकर्ता रिकॉर्ड 4 है जब मैं user_car में एक नया रिकॉर्ड डालता हूं, उदाहरण के लिए")। यदि आप माईसाम से शुरू करते हैं, तो पूर्णतया इनो डीडी डेटाबेस में निर्यात करना एक दुःस्वप्न होगा, भले ही आपके डेटा में सभी चाबियाँ हों, तालिका डेटा सही क्रम में आयात किया जाना चाहिए (उपयोगकर्ता और कार, user_car से पहले)।

मारियाडीबी? कभी नहीं, क्योंकि कम लोग इसका उपयोग करते हैं, इसलिए माईसाम और इनो डीबी की तुलना में आपके पास कम समर्थन होगा।

नीचे रेखा क्लीनर: INNODB।

+3

मारिया डीबी क्यों नहीं? – qwertymk

+1

यदि आप मारिया को दृढ़ता से हतोत्साहित करते हैं, तो यह कहने लायक हो सकता है - अन्यथा यह वाक्य बहुत उपयोगी नहीं है! क्या आप अपनी पोस्ट संपादित करेंगे और उस बिंदु पर थोड़ा विस्तार करेंगे? – halfer

+0

@quertymk और halfer, आपके अनुरोधों का पालन किया और संपादित किया। thanx! :) –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^