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

पुराने डेटा को वापस करने के लिए mysql db पढ़ने का क्या कारण हो सकता है?

ऐसा लगता है कि आपके क्लाइंट डेटाबेस के अपने स्नैपशॉट में रह रहे हैं, जो सच होगा यदि उनके पास रिपीटेबल-रीड आइसोलेशन स्तर का उपयोग करके एक खुला लेनदेन है। दूसरे शब्दों में, उस ग्राहक द्वारा अपना लेन-देन शुरू करने के बाद प्रतिबद्ध कोई भी डेटा उस ग्राहक को दिखाई नहीं देगा।

एक समाधान एक नए लेनदेन को शुरू करने के लिए मजबूर करना है। क्लाइंट सत्र में बस COMMIT चलाएं जहां ऐसा लगता है कि यह पुराना डेटा देख रहा है। इससे कोई भी खुला लेन-देन हल हो जाएगा और अगली क्वेरी से एक नया लेन-देन शुरू हो जाएगा।

एक और तरीका है कि आप परीक्षण कर सकते हैं लॉकिंग रीड का उपयोग करना क्वेरी जैसे SELECT ... FOR UPDATE . यह क्लाइंट के लेन-देन अलगाव स्तर की परवाह किए बिना सबसे हाल ही में प्रतिबद्ध डेटा को पढ़ेगा। यही है, भले ही क्लाइंट ने रिपीटेबल-रीड का उपयोग करके अपना लेनदेन शुरू किया हो, एक लॉकिंग रीड ऐसा व्यवहार करता है जैसे कि उन्होंने रीड-कमिटेड के साथ अपना लेनदेन शुरू किया हो।




  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. MySql इनर जॉइन विद WHERE क्लॉज

  3. एएसपीनेट के साथ MySQL का उपयोग कैसे करें?

  4. KML फ़ाइल को mysql / xpath और x quires में लोड किया जा रहा है

  5. PDO, $_GET, और MySQL डेटाबेस से चयन