انتقل إلى محتوى الدرس

How InnoDB Guarantees ACID تحقيق ضمانات ACID في InnoDB

تعلّم المعاملات الذرية ACID والحفظ التلقائي في محرك InnoDB بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
7 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

كيف يحقق محرك InnoDB سرعة المعالجة العالية في الذاكرة العشوائية مع ضمان عدم ضياع أي بايت عند الأعطال؟ يعتمد المحرك على ثلاث آليات هندسية متكاملة:

  • سجلات التراجع (Undo Logs) للذرية والعزل: قبل تعديل أي صف في الذاكرة (Buffer Pool)، يحتفظ المحرك بنسخة من القيمة القديمة في سجل التراجع لإلغاء التعديل عند الفشل أو لتزويد الجلسات المتزامنة بقراءة متسقة.
  • سجل الإعادة (Redo Log / Write-Ahead Logging) للديمومة: عند اعتماد المعاملة، يكتب المحرك التغييرات تسلسلياً وبسرعة فائقة في ملفات سجل الإعادة على القرص ليتمكن من استعادتها تلقائياً فور إعادة تشغيل الخادم بعد أي انقطاع مفاجئ.
  • innodb_flush_log_at_trx_commit = 1: الإعداد الافتراضي الصارم في MySQL 8 الذي يضمن تفريغ ومزامنة سجل الإعادة إلى القرص الصلب عند كل عملية اعتماد.
  • innodb_doublewrite = ON: يحمي صفحات البيانات بحجم 16 كيلوبايت من الكتابة المبتورة (Torn Pages) أثناء انقطاع الكهرباء.
+--------------------------------+-------+
| Variable_name                  | Value |
+--------------------------------+-------+
| innodb_flush_log_at_trx_commit | 1     |
| innodb_doublewrite             | ON    |
+--------------------------------+-------+
SQL
SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit';

SHOW VARIABLES LIKE 'innodb_doublewrite';

SHOW STATUS LIKE 'Innodb_os_log_written';