मान लें कि आप एक ट्रांजेक्शनल इंजन (आमतौर पर इनोडब) का उपयोग करते हैं, उसी लेनदेन में तालिका को साफ़ करें और फिर से भरें।
सुनिश्चित करें कि आपके पाठक READ_COMMITTED या उच्च लेनदेन अलगाव स्तर का उपयोग करते हैं (डिफ़ॉल्ट दोहराए जाने योग्य पढ़ें जो अधिक है)।
इस तरह पाठक अद्यतन के दौरान तालिका की पुरानी सामग्री को पढ़ना जारी रखेंगे।
सावधान रहने के लिए कुछ चीजें हैं:
- यदि तालिका इतनी बड़ी है कि यह रोलबैक क्षेत्र को समाप्त कर देती है - यह संभव है यदि आप संपूर्ण (मान लें) 1M पंक्ति तालिका को अद्यतन करते हैं। बेशक यह ट्यून करने योग्य है लेकिन सीमाएं हैं
- यदि लेन-देन कुछ हद तक विफल हो जाता है और वापस लुढ़क जाता है - बड़े लेनदेन को वापस करना InnoDB में बहुत अक्षम है (यह कमिट के लिए अनुकूलित है, रोलबैक के लिए नहीं)
- डेडलॉक और लॉक वेट टाइमआउट से सावधान रहें, जो बड़े लेनदेन का उपयोग करने पर अधिक होने की संभावना है।