--single-transaction
. का इस्तेमाल करें InnoDB टेबल पर टेबल लॉक से बचने के लिए।
आप वास्तव में MyISAM के बारे में कुछ नहीं कर सकते, हालाँकि आपको वास्तव में MyISAM का उपयोग नहीं करना चाहिए। सबसे अच्छा समाधान यह है कि एक रीड रेप्लिका बनाई जाए और रेप्लिका से बैकअप बनाया जाए ताकि लॉक्स एप्लिकेशन को प्रभावित न करें।
आपको जो खोजना चाहिए वह यह है कि जब एक बैकअप चल रहा हो, एक READ LOCAL
लॉक को एकल डेटाबेस में तालिकाओं पर रखा जाता है जिसका वर्तमान में बैकअप लिया जा रहा है, जिसका अर्थ है कि आप तालिकाओं से पढ़ सकते हैं लेकिन लिखते हैं (सम्मिलित/अद्यतन/हटाएं) को छोड़कर को अवरुद्ध कर देगा MyISAM पर कुछ इंसर्ट्स जो लॉक को डिस्टर्ब किए बिना हासिल किए जा सकते हैं। उनको अनुमति दी जा सकती है। ऐसा होते हुए देखने का सबसे आसान तरीका है बार-बार क्वेरी करना SHOW FULL PROCESSLIST;
अवरुद्ध करने वाले धागे खोजने के लिए।