2010-01-29 22 views
19

मैं डेटाबेस प्रकारों और डेटाबेस इंजनों के साथ लेनदेन का उपयोग करने के तरीके पर बहुत विस्तृत ट्यूटोरियल पढ़ रहा हूं, लेकिन मुझे एक गाइड नहीं मिला है जो मुझे सिखाता है कि मुझे कब और क्यों उपयोग करना चाहिए।मुझे अपने प्रश्नों में लेनदेन का उपयोग कब करना चाहिए?

मुझे पता है लेनदेन आमतौर पर बैंकिंग के लिए उपयोग किया जाता है, इसलिए जब हम पैसे डेटा के साथ काम करते हैं, लेकिन मैं कल्पना कर सकता हूं कि उनका उपयोग कई अन्य तरीकों से किया जाता है।

आज मैं एक रिलेशनल डेटाबेस के लिए INSERT कथन के साथ एक पृष्ठ पर काम कर रहा हूं, और मैं जानना चाहता था कि यह उन मामलों में से एक है जब मुझे उनका उपयोग करना चाहिए।

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

क्या कोई इन मौलिक नियमों के साथ कुछ लिंक समझा सकता है या दे सकता है?

मैं MySQL 5.0.8 का उपयोग कर रहा हूं। क्या मुझे लेन-देन की आवश्यकता वाले सभी टेबलों के लिए InnoDB का उपयोग करना चाहिए? यदि हां, InnoDB सामान्य MyISAM से धीमा है, लेकिन मुझे इसके बारे में चिंता नहीं करनी चाहिए?

धन्यवाद

उत्तर

15

मूल रूप से किसी भी समय आप काम है कि बाहर परिवर्तन या के लिए या तो प्रति संवेदनशील है की एक इकाई है एक त्रुटि उत्पन्न होती है या किसी अन्य कारण हैं, हर बदलाव रोलबैक करने की क्षमता की जरूरत है।

Look here for some excellent answers and their reasons for using them

+0

सहायता के लिए धन्यवाद, मुझे यहां कुछ लेन-देन भी मिलते हैं जो लेनदेन के साथ काम करने के लिए http://www.kennynet.co.uk/2008/12/02/php-pdo-nested-transactions/ – vitto

7

निक क्रेवर ने जो लिखा है उसके अलावा, आप लेनदेन का उपयोग करना चाहेंगे जब आपके पास लेखन की एक श्रृंखला है जिसे परमाणु रूप से निष्पादित करने की आवश्यकता है; यानी, उन्हें सभी सफल होना चाहिए या कोई भी सफल नहीं होना चाहिए।

6

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

  • कई तालिकाओं
3

आप लेन-देन का उपयोग आप कार्रवाई है कि परमाणु होना चाहिए के एक समूह है जब के लिए बाद में हटाने के लिए एक मेज से पढ़ना

  • लेखन से संबंधित डेटा (या तो सभी सफल या कोई भी सफल नहीं) लेन-देन में इन कार्रवाइयों को लपेटने से आपको रोलबैक क्रियाएं मिलती हैं जो आपको किसी त्रुटि का सामना करने में पहले ही सफल हो जाती हैं। यह भी सुनिश्चित करता है कि जिस डेटा के साथ आप काम कर रहे हैं वह स्थिर है क्योंकि लेन-देन पूरा होने तक ताले लगाए जाएंगे।

  • 0

    कुछ ढांचे में, उदा। वसंत, स्वचालित लेन-देन विफल होने पर लेनदेन को फिर से निष्पादित करने की अनुमति देता है।

    संबंधित मुद्दे