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

मुझे MySQL लेनदेन का उपयोग कब करना चाहिए?

लेन-देन का उपयोग तब किया जाता है जब आपके पास प्रश्नों का एक समूह होता है जो सभी एक दूसरे पर निर्भर करते हैं।

उदाहरण के लिए, एक बैंक:

  • बैंक ग्राहक "जॉन" "एलिस" के खाते में $100 ट्रांसफर करता है।
  • इस उदाहरण के लिए, 2 प्रश्न हैं (मैं लॉगिंग या लेन-देन इतिहास...आदि नहीं दिखा रहा हूँ)। आपको जॉन के बैलेंस से $100 काटने होंगे और उसे ऐलिस के बैलेंस में जोड़ना होगा।
  • Start transaction
  • जॉन से कटौती
    • UPDATE accounts SET balance=balance-100 WHERE account='John'
  • ऐलिस में जोड़ें
    • UPDATE accounts SET balance=balance+100 WHERE account='Alice'
  • commit

लेन-देन तब तक सहेजा नहीं जाता जब तक आप इसे प्रतिबद्ध नहीं करते। इसलिए यदि दोनों में से किसी भी प्रश्न में कोई त्रुटि थी, तो आप rollback . पर कॉल कर सकते हैं और लेन-देन शुरू होने के बाद से चल रहे किसी भी प्रश्न को पूर्ववत करें। यदि किसी कारण से ऐलिस में $100 जोड़ने की क्वेरी विफल हो जाती है, तो आप रोलबैक कर सकते हैं और जॉन से $100 नहीं काट सकते। यह सुनिश्चित करने का एक तरीका है कि यदि आवश्यक हो तो आप स्वचालित रूप से प्रश्नों को पूर्ववत कर सकते हैं।

  • जब मैं दो या दो से अधिक डिलीट/अपडेट/इन्सर्ट क्वेरी निष्पादित करता हूं तो क्या मुझे लेनदेन शुरू करना चाहिए?

    इस पर निर्भर करता है कि प्रश्न क्या कर रहे हैं।

  • क्या मेरे पास केवल एक डिलीट/अपडेट/इन्सर्ट क्वेरी होने पर भी लेनदेन शुरू करना चाहिए?

    जरूरी नहीं है जब तक कि आपको क्वेरी को रोलबैक (पूर्ववत) करने के तरीके की आवश्यकता न हो, जैसे आप एक अपडेट करना चाहते हैं और कमिट (सेव) को कॉल करने से पहले इसे सत्यापित करना चाहते हैं।

  • क्या मुझे एक पृष्ठ पर 10 बार लेन-देन शुरू करना चाहिए, या पूरे पृष्ठ के लिए केवल एक बार बेहतर करना चाहिए, या क्या आप प्रत्येक पृष्ठ के लिए अधिकतम (उदाहरण के लिए 5) की अनुशंसा करते हैं?

    जितनी जरूरत हो उतनी शुरुआत करें। मुझे संदेह होगा कि आपके पास प्रति पृष्ठ कई लेन-देन हैं क्योंकि आप प्रत्येक पृष्ठ लोड पर एक काम कर रहे होंगे (यानी धन हस्तांतरित करना)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TIMESTAMPDIFF () उदाहरण – MySQL

  2. घातक त्रुटि:अपरिभाषित विधि पर कॉल करें mysqli::bind_param() in

  3. सिम्फनी 2 में डेटाबेस दृश्य के लिए इकाई (सिद्धांत) कैसे स्थापित करें?

  4. MySQL में एक स्ट्रिंग को कैसे विभाजित करें

  5. Mysql कई संग्रहीत प्रक्रियाओं से एक संग्रहीत कार्यविधि बनाता है