شرح صفوف ومحتوى الفقرة
كيف يحقق محرك 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';