لماذا هو قفل مستوى الجدول أفضل من قفل مستوى الصف لجداول كبيرة؟

StackOverflow https://stackoverflow.com/questions/3462643

  •  27-09-2019
  •  | 
  •  

سؤال

بحسب ال دليل MySQL:

بالنسبة للجداول الكبيرة ، غالبًا ما يكون قفل الجدول أفضل من قفل الصف ،

لماذا هذا؟ أفترض أن القفل على مستوى الصف أفضل لأنه عندما تقفل على جدول أكبر ، فإنك تقفل المزيد من البيانات.

هل كانت مفيدة؟

المحلول

من (الحرية) حلقة الوصل

أبطأ من أقفال مستوى الصفحة أو على مستوى الجدول عند استخدامها في جزء كبير من الجدول لأنه يجب عليك الحصول على العديد من الأقفال

استخدم قفل مستوى الصف إذا كنت تضرب صفًا أو اثنين فقط. إذا كان الكود الخاص بك يضرب العديد من الصفوف أو غير معروفة ، يمكنك التمسك بقفل الجدول.

نصائح أخرى

  • يحتاج قفل الصف إلى ذاكرة أكثر من قفل الجدول أو مستوى الصفحة.

  • يجب الحصول على العديد من الأقفال مع قفل الصف ، مما ينفق المزيد من الموارد

من http://www.devshed.com/c/a/MySQL/MySQL-Optimization-part-2/

  • مزايا قفل مستوى الصف:

    • يتعارض قفل أقل عند الوصول إلى صفوف مختلفة في العديد من المواضيع.
    • تغييرات أقل للتراجع.
    • يجعل من الممكن قفل صف واحد لفترة طويلة.
  • عيوب قفل مستوى الصف:

    • يأخذ ذاكرة أكثر من أقفال مستوى الصفحة أو على مستوى الجدول.
    • أبطأ من أقفال مستوى الصفحة أو على مستوى الجدول عند استخدامها في جزء كبير من الجدول لأنه يجب عليك الحصول على العديد من الأقفال.
    • بالتأكيد أسوأ بكثير من الأقفال الأخرى إذا كنت تقوم في كثير من الأحيان بالتجميع عن طريق العمليات في جزء كبير من البيانات أو إذا كان عليك في كثير من الأحيان مسح الجدول بأكمله.
    • مع الأقفال ذات المستوى الأعلى ، يمكنك أيضًا دعم أقفال أنواع مختلفة بسهولة لضبط التطبيق ، لأن القفل العلوي أقل من أقفال مستوى الصف.
  • أقفال الجدول متفوقة على أقفال مستوى الصفحة أو على مستوى الصف في الحالات التالية:

    • معظم عبارات الجدول هي قراءات.
    • اقرأ وتحديثات على مفاتيح صارمة ، حيث تقوم بتحديث أو حذف صف يمكن جلبه بقراءة مفتاح واحد:UPDATE tbl_name SET column=value WHERE unique_key_col=key_value; DELETE FROM tbl_name WHERE unique_key_col=key_value;
    • حدد مجتمعة مع عبارات إدراج متزامنة ، وعدد قليل جدًا من البيانات التحديث والحذف.
    • العديد من عمليات المسح أو المجموعة حسب العمليات على الجدول بأكمله دون أي كتاب.

أ صف يعد قفل مستوى الجدول أفضل لجدول كبير حيث تحدث تعديلات البيانات الرئيسية. يتيح هذا للنظام مواجهة قفل واحد على الطاولة بدلاً من الاضطرار إلى التعامل مع أقفال Gazillion (واحدة لكل صف).

يتصاعد RDBMS تلقائيًا مستويات القفل داخليًا.

يتيح قفل الجدول العديد من الجلسات من القراءة من جدول في نفس الوقت

لتحقيق سرعة قفل عالية جدًا ، يستخدم MySQL قفل الجدول

"أفترض أن القفل على مستوى الصف أفضل لأنه" [يمكنك قفل بيانات أقل].

يتم تعريف "الأفضل" أولاً في هذه الصفحة. يبدو أن أفضل "أسرع".

لا يمكن أن يكون قفل مستوى الصف (بشكل عام) أسرع بسبب خلاف للأقفال. قفل كل صف من مجموعة النتائج الكبيرة يعني الإمكانية الحقيقية للغاية للصراع مع استعلام مجموعة كبيرة أخرى وتراجع.

بشكل عام ، إذا كنت بحاجة إلى قفل الكثير من البيانات ، فإن قفل واحد على جدول كبير هو أرخص من مجموعة كاملة من مستوى الصفوف أو أقفال الصفحة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top