InnoDB एक लेन-देन इंजन है।
इसका मतलब है कि निम्नलिखित परिदृश्य में:
Session Aरिकॉर्ड सम्मिलित करता है1Session Bरिकॉर्ड सम्मिलित करता है2Session Aवापस आ जाता है
, या तो अंतराल की संभावना है या session B session A . तक लॉक रहेगा प्रतिबद्ध या वापस ले लिया।
InnoDB डिजाइनरों (अधिकांश अन्य लेनदेन इंजन डिजाइनरों के रूप में) ने अंतराल की अनुमति देना चुना।
ऑटो-इन्क्रीमेंट काउंटर को एक्सेस करते समय, InnoDB एक विशेष तालिका-स्तर का उपयोग करता है AUTO-INC लॉक करें कि यह वर्तमान SQL के अंत तक रहता है बयान, लेनदेन के अंत तक नहीं। एक AUTO_INCREMENT वाली तालिका में सम्मिलित करने के लिए संगामिति को बेहतर बनाने के लिए विशेष लॉक रिलीज़ रणनीति पेश की गई थी कॉलम
…
InnoDB जब तक सर्वर चलता है, इन-मेमोरी ऑटो-इन्क्रीमेंट काउंटर का उपयोग करता है। जब सर्वर बंद हो जाता है और फिर से चालू हो जाता है, InnoDB पहले INSERT . के लिए प्रत्येक तालिका के लिए काउंटर को पुन:प्रारंभ करता है तालिका में, जैसा कि पहले बताया गया है।
अगर आप id से डरते हैं कॉलम को चारों ओर लपेटकर, इसे BIGINT बनाएं (8-बाइट लंबा)।