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