في هذا الدرس 6تصفّح المواضيع
صُمم خادم MySQL 8.4 وفق معمارية هندسية معيارية مكونة من ثلاث طبقات رئيسية تفصل بوضوح بين استقبال الاتصالات، وتحليل أوامر SQL، والتخزين الفعلي على القرص الصلب:
- الطبقة الأولى — إدارة الاتصالات والمصادقة: تتحقق من اسم المستخدم وكلمة المرور وتشفير الاتصال، وتخصص مسار تنفيذ (Thread) لكل جلسة.
- الطبقة الثانية — نواة معالجة SQL: تضم المحلل اللغوي (Parser) ومدقق الصلاحيات ومحسن الاستعلامات (Optimizer).
- الطبقة الثالثة — محركات التخزين القابلة للتبديل: تتولى حفظ واسترجاع الصفوف والفهارس من الذاكرة والقرص بقيادة المحرك الافتراضي InnoDB.
-- Check your connection thread ID and default storage engine
SELECT
CONNECTION_ID(),
@@default_storage_engine;
عندما يصل أمر SQL إلى الخادم، يمر بمرحلتين حاسمتين داخل طبقة SQL قبل قراءة أي بايت من القرص:
- المحلل اللغوي والنحوي (Parser): يفكك نص الاستعلام إلى مفردات برمجية ويتحقق من صحة قواعد كتابة الأمر ويبني شجرة التحليل.
- محسن الاستعلام القائم على التكلفة (Cost-Based Optimizer): يقارن بين مسارات التنفيذ الممكنة ويختار الخطة الأقل تكلفة والأسرع استجابةً.
-- Inspect default storage engine and port configuration
SELECT
@@default_storage_engine,
@@port;
تتميز معمارية MySQL بنظام محركات التخزين القابلة للتبديل (Pluggable Storage Engines)، ويمكنك استعراض جميع المحركات المتوفرة في خادمك عبر الأمر SHOW ENGINES;:
- محرك InnoDB (الافتراضي): المحرك القياسي الداعم للمعاملات الذرية وأقفال الصفوف والمفاتيح الأجنبية.
- محرك MEMORY: يخزن البيانات في الذاكرة العشوائية للبيانات المؤقتة السريعة، وتُفقد بياناته عند إعادة تشغيل الخادم.
- محركا CSV و ARCHIVE: محركات متخصصة للتعامل مع ملفات CSV أو أرشفة السجلات المضغوطة.
-- Display all storage engines and their transaction support
SHOW ENGINES;
يُعد محرك InnoDB المحرك الافتراضي والموصى به لجميع التطبيقات الحديثة لأنه يقدم أربع ركائز هندسية حاسمة:
- دعم معاملات ACID الكاملة: يضمن تنفيذ العمليات المترابطة كوحدة واحدة لا تتجزأ مع إمكانية التراجع الكامل عند حدوث خطأ.
- القفل على مستوى الصف (Row-Level Locking): يقفل الصف الذي يجري تعديله فقط دون تجميد بقية صفوف الجدول أمام المستخدمين الآخرين.
- التكامل المرجعي للعلاقات: يدعم فرض قيود المفاتيح الأجنبية لحماية ترابط الجداول.
- التنظيم العنقودي للمفتاح الأساسي: يرتب صفحات البيانات فيزيائياً وفق المفتاح الأساسي لتسريع البحث المباشر.
-- Check the active InnoDB storage engine version
SELECT @@innodb_version, @@default_storage_engine;
يجمع محرك InnoDB بين السرعة الفائقة والأمان ضد الأعطال بفضل مكونين أساسيين في معماريته:
- ذاكرة التخزين المؤقت (InnoDB Buffer Pool): مساحة مخصصة في الذاكرة العشوائية تحتفظ بصفحات البيانات والفهارس (بحجم
16 KBللصفحة) لتلبية الاستعلامات المتكررة من الذاكرة مباشرة. - سجل الإعادة (Redo Log): سجل متسلسل يوثق كل تعديل قبل كتابته النهائية على القرص، مما يتيح استعادة البيانات تلقائياً عند انقطاع التيار.
-- Inspect InnoDB page size and buffer pool size in bytes
SELECT
@@innodb_page_size,
@@innodb_buffer_pool_size;
يقارن الجدول المرجعي التالي بين محرك التخزين الحديث InnoDB والمحرك القديم MyISAM:
| الميزة الهندسية | محرك InnoDB (الافتراضي في MySQL 8.4) | محرك MyISAM (التراثي القديم) |
|---|---|---|
| دعم المعاملات ACID | مدعوم بالكامل (تأكيد أو تراجع آمن) | غير مدعوم إطلاقاً |
| مستوى القفل عند الكتابة | قفل على مستوى الصف فقط (تزامن عالٍ) | قفل الجدول بالكامل (يبطئ المستخدمين) |
| الاستعادة التلقائية بعد العطل | استعادة آلية فورية عبر سجل Redo Log | عرضة لتلف الجداول عند الانقطاع المفاجئ |
| دعم المفاتيح الأجنبية | مدعوم ومفروض برمجياً | غير مدعوم |
-- Confirm InnoDB is active and check its buffer pool instances
SELECT
@@default_storage_engine,
@@innodb_buffer_pool_instances;
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
تعرفت في هذا الدرس على الطبقات المعمارية الثلاث لخادم MySQL 8.4، ودور المحلل النحوي ومحسن الاستعلامات، وأسباب تفوق محرك التخزين الافتراضي InnoDB على محرك MyISAM القديم، وآلية عمل ذاكرة Buffer Pool وسجل Redo Log.
الخطوة التالية والدرس القادم
انتقل الآن إلى الدرس الثالث «تثبيت خادم MySQL وأدوات الإدارة المحلية» لتثبيت الخادم وأداة MySQL Workbench على جهازك.
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.
المصطلحات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 InnoDB Engine محرك InnoDB
- تعلّم معمارية خادم MySQL ومحرك التخزين InnoDB بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
- للمراجعة
- 02 Client Server Architecture Layers طبقات معمارية الخادم والعميل
- المفهوم الهندسي والتطبيق العملي المباشر لقسم طبقات معمارية الخادم والعميل في MySQL 8.4.
- للمراجعة
- 03 SQL Parser and Query Optimizer محلل SQL ومحسن الاستعلامات
- المفهوم الهندسي والتطبيق العملي المباشر لقسم محلل SQL ومحسن الاستعلامات في MySQL 8.4.
- للمراجعة
- 04 Pluggable Storage Engines in MySQL محركات التخزين في خادم MySQL
- المفهوم الهندسي والتطبيق العملي المباشر لقسم محركات التخزين في خادم MySQL في MySQL 8.4.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
الاختصارات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 ACID ACID
- Atomicity, Consistency, Isolation, Durability
- الخصائص الأربع (الذرية، الاتساق، العزل، الديمومة) التي يضمنها محرك InnoDB لحماية معاملات البيانات.
- للمراجعة
- 02 WAL WAL
- Write-Ahead Logging
- تقنية التسجيل المسبق التي يعتمدها محرك InnoDB بتدوين التعديلات في سجل Redo قبل كتابة الصفحات.
- للمراجعة
- 03 RAM RAM
- Random Access Memory
- الذاكرة العشوائية السريعة التي يحتفظ فيها محرك InnoDB بصفحات البيانات والفهارس النشطة.
- للمراجعة
- 04 API API
- Application Programming Interface
- واجهة البرمجة الداخلية التي تربط طبقة محسن الاستعلامات بمحركات التخزين القابلة للتبديل.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
نفّذ أمثلة SQL المشروحة في قسم طبقات معمارية الخادم والعميل على خادم MySQL 8 المحلي وتحقق من النتيجة.
-
بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم محلل SQL ومحسن الاستعلامات وقارن مخرجات خادم MySQL.
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.
لمحة عن التحدي8 أسئلة تنتظرك +
ما الطبقات الثلاث التي تتكون منها المعمارية الداخلية لخادم MySQL 8.4؟
تتكون معمارية MySQL من طبقة إدارة الاتصالات، وطبقة معالجة SQL (المحلل والمحسن)، وطبقة محركات التخزين.
أي مكون في طبقة SQL يقيم الإحصائيات والفهارس المتاحة لاختيار خطة التنفيذ الأقل تكلفة؟
يتولى محسن الاستعلامات القائم على التكلفة (Cost-Based Optimizer) اختيار خطة التنفيذ المثلى.
في إصدار MySQL 8.4، يُحفظ قاموس بيانات النظام داخل جداول InnoDB المحمية بدلاً من ملفات .frm القديمة.
صواب؛ وحّد إصدار MySQL 8 قاموس البيانات داخل جداول InnoDB لضمان عدم تلف بيانات المخطط.
ما هو محرك التخزين الافتراضي في إصداري MySQL 8.0 و 8.4 LTS؟
محرك InnoDB هو محرك التخزين الافتراضي في خادم MySQL 8.
أي من المزايا الهندسية التالية يدعمها محرك التخزين InnoDB؟ (اختر كل ما ينطبق)
يدعم محرك InnoDB معاملات ACID، والقفل على مستوى الصف، والمفاتيح الأجنبية، والاستعادة التلقائية بعد الأعطال.
ما الحجم الافتراضي لصفحة البيانات الواحدة داخل ذاكرة InnoDB Buffer Pool؟
الحجم الافتراضي لصفحة بيانات InnoDB هو 16 كيلوبايت (16384 بايت).
يسجل ملف Redo Log في محرك InnoDB التعديلات بالتسلسل على القرص لإتاحة الاستعادة التلقائية للبيانات عند انقطاع الطاقة.
صواب؛ يضمن سجل Redo Log استعادة جميع التعديلات المؤكدة تلقائياً عند إعادة تشغيل الخادم بعد أي توقف مفاجئ.
لماذا يتراجع أداء محرك MyISAM القديم مقارنةً بمحرك InnoDB عند وجود عمليات كتابة متزامنة كثيفة؟
لأن محرك MyISAM يقفل الجدول بالكامل عند أي عملية كتابة، بينما يقفل محرك InnoDB الصفوف المتأثرة فقط.