Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

तालिका को अपडेट करते समय पढ़ना रोकें

मान लें कि आप एक ट्रांजेक्शनल इंजन (आमतौर पर इनोडब) का उपयोग करते हैं, उसी लेनदेन में तालिका को साफ़ करें और फिर से भरें।

सुनिश्चित करें कि आपके पाठक READ_COMMITTED या उच्च लेनदेन अलगाव स्तर का उपयोग करते हैं (डिफ़ॉल्ट दोहराए जाने योग्य पढ़ें जो अधिक है)।

इस तरह पाठक अद्यतन के दौरान तालिका की पुरानी सामग्री को पढ़ना जारी रखेंगे।

सावधान रहने के लिए कुछ चीजें हैं:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सभी पंक्तियों को पुनः प्राप्त करें लेकिन पहला रिकॉर्ड गायब है

  2. एक तेज़ सबसे बड़ी-एन-प्रति-समूह क्वेरी कैसे बनाएं?

  3. एकाधिक तालिकाओं के लिए MySQL क्वेरी माध्यमिक तालिकाएँ एकाधिक आइटम हैं?

  4. जेएसपी और सर्वलेट का उपयोग कर फ़ोल्डर में एकाधिक छवियों को कैसे अपलोड करें?

  5. Mysql_प्रभावित_रो के लिए संभावित वापसी मान ()