2010-11-22 15 views
19

बनाम मैं निम्न आलेख कल (http://blogs.sitepoint.com/2010/11/19/mysql-mistakes-php-developers/) पढ़ सकते हैं और यह निम्नलिखित लिखा है:MySQL - InnoDB MyISAM

MySQL डेटाबेस इंजन की एक संख्या है, लेकिन आप सबसे MyISAM और InnoDB मुठभेड़ की संभावना हो।

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

समाधान सरल है: इनो डीबी का उपयोग करें।

मैंने हमेशा माइस्सम का उपयोग किया है क्योंकि यह डिफ़ॉल्ट था। तुम क्या सोचते हो?

अगर मैं इनो डीडी में अपग्रेड करना चाहता था, तो phpMyAdmin में, क्या मैं बस प्रत्येक तालिका को संपादित कर सकता हूं और इसे innoDB में बदल सकता हूं या क्या करने के लिए एक और जटिल प्रक्रिया है?

धन्यवाद!

+1

क्या करें मुझे लगता है? यह [इस सवाल] का एक डुप्लिकेट है (http://stackoverflow.com/questions/20148/myisam-versus-innodb) + [यह एक] (http://stackoverflow.com/questions/225150/are- कहीं भी -Any-नुकसान-बातों में आप की जरूरत करने के लिए पता है कि जब से बदलती-से-MyISAM करने वाली सराय)। :) –

+1

myisam अब डिफ़ॉल्ट इंजन नहीं है http://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html। आर्किटेक्चर/इंजन को पूरी तरह से उस तथ्य के आधार पर मैं आपके तर्क के बारे में क्या सोचता हूं कि यह डिफ़ॉल्ट है - ummmm कोई टिप्पणी नहीं। –

उत्तर

30

हां, आप बिना किसी परेशानी के, प्रयुक्त अंडरवियर जैसे इंजनों में और बाहर स्वैप कर सकते हैं। बस इसे phpmyadmin में बदलें।

लेकिन मैं इसे बदलने के लिए इसे नहीं बदलूंगा। क्या आपको विदेशी चाबियों का उपयोग करने की ज़रूरत है? बदल दें। क्या आपको टेबल-लॉकिंग के बजाय पंक्ति-स्तर-लॉकिंग की आवश्यकता है? बदल दें।

यह ध्यान देने योग्य है कि MyISAM का उपयोग करने के अच्छे कारण भी हैं। FULLTEXT अनुक्रमण पर एक नज़र डालें। आप इनो डीबी के साथ ऐसा नहीं कर सकते हैं।

अद्यतन

MySQL के रूप में 5.6 की प्रतिलिपि प्राप्त रूप में अच्छी तरह InnoDB तालिकाओं के लिए लागू किया गया है। यहां manual है।

+0

+1 - इस बिंदु पर मैं इसे बदलने के लिए इसे बदल नहीं सकता। यदि आपको इनो डीबी की विशेषताओं की आवश्यकता है तो केवल इसे बदलें। उस ने कहा, मैंने खुद को बहुत लंबे समय में माईसाम का इस्तेमाल किया है। – prodigitalson

+1

मैं लगभग विशेष रूप से InnoDB का उपयोग करता हूं। दूसरे दिन को छोड़कर जब मुझे एक पूर्ण सूचकांक की आवश्यकता थी। ;) – Stephen

+4

इस मामले पर हम्मम इतनी सारी राय है। मुझे लगता है कि मैं सिर्फ माईसाम के साथ शुरू करने जा रहा हूं क्योंकि मुझे पिछले 7 सालों से इसका कोई समस्या नहीं है :) –

1

एक पुराने सवाल जोड़ने से के लिए क्षमा करें, लेकिन यह भी मुझे जो इंजन को चुनने के, खासकर जब से MyISAM तेजी से होता है के लिए पढ़ता है और मेरी डेटाबेस तालिकाओं अधिक लिखने पढ़ा था बहुत मदद की:

http://www.rackspace.com/knowledge_center/article/mysql-engines-myisam-vs-innodb

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