मैं कहता हूं कि आप ऐसा दो कारणों से नहीं करते हैं:
- त्रुटि संदेश थोड़े अस्पष्ट हैं:त्रुटि 1062 (23000):कुंजी 1 के लिए डुप्लिकेट प्रविष्टि 'xxx' . क्या आप हमेशा 100% सुनिश्चित होते हैं कि कौन सी कुंजी 1 है?
- यह आपको एक विशिष्ट डेटाबेस विक्रेता के लिए लॉक कर देता है
मुझे लेन-देन के रूप में . आसान लगता है :
- पंक्ति के अस्तित्व की जांच करें;
- यदि पंक्ति पहले से मौजूद है तो अपवाद फेंक दें;
- नई पंक्ति डालें।
प्रदर्शन संबंधी समस्याएं :
मैं कहता हूं दो बार मापें, एक बार काटें . अपने विशिष्ट उपयोग के मामले के लिए उपयोग को प्रोफाइल करें। मेरे सिर के ऊपर मैं कहूंगा कि भारी डीबी उपयोग परिदृश्यों को छोड़कर प्रदर्शन कोई मुद्दा नहीं होगा।
इसका कारण यह है कि एक बार जब आप SELECT
. करते हैं उस विशिष्ट पंक्ति पर, इसका डेटा डेटाबेस कैश में रखा जाएगा और तुरंत INSERT
. के लिए इंडेक्स पर किए गए इंसर्शन चेक के लिए उपयोग किया जाता है बयान। यह भी ध्यान में रखते हुए कि यह एक्सेस एक इंडेक्स द्वारा समर्थित है, यह निष्कर्ष निकालता है कि प्रदर्शन कोई समस्या नहीं होगी।
लेकिन, हमेशा की तरह, मापें।