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

معمارية خادم MySQL ومحرك التخزين InnoDBMySQL Architecture and InnoDB Storage Engine

تعلّم معمارية خادم MySQL ومحرك التخزين InnoDB بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
أقسام الدرس
6
الأمثلة
6
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
8
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

صُمم خادم MySQL 8.4 وفق معمارية هندسية معيارية مكونة من ثلاث طبقات رئيسية تفصل بوضوح بين استقبال الاتصالات، وتحليل أوامر SQL، والتخزين الفعلي على القرص الصلب:

  • الطبقة الأولى — إدارة الاتصالات والمصادقة: تتحقق من اسم المستخدم وكلمة المرور وتشفير الاتصال، وتخصص مسار تنفيذ (Thread) لكل جلسة.
  • الطبقة الثانية — نواة معالجة SQL: تضم المحلل اللغوي (Parser) ومدقق الصلاحيات ومحسن الاستعلامات (Optimizer).
  • الطبقة الثالثة — محركات التخزين القابلة للتبديل: تتولى حفظ واسترجاع الصفوف والفهارس من الذاكرة والقرص بقيادة المحرك الافتراضي InnoDB.
مخطط الطبقات المعمارية الثلاث لخادم MySQL 8.4 ومحرك التخزين الافتراضي InnoDB
SQL
-- Check your connection thread ID and default storage engine
SELECT
  CONNECTION_ID(),
  @@default_storage_engine;

عندما يصل أمر SQL إلى الخادم، يمر بمرحلتين حاسمتين داخل طبقة SQL قبل قراءة أي بايت من القرص:

  • المحلل اللغوي والنحوي (Parser): يفكك نص الاستعلام إلى مفردات برمجية ويتحقق من صحة قواعد كتابة الأمر ويبني شجرة التحليل.
  • محسن الاستعلام القائم على التكلفة (Cost-Based Optimizer): يقارن بين مسارات التنفيذ الممكنة ويختار الخطة الأقل تكلفة والأسرع استجابةً.
SQL
-- Inspect default storage engine and port configuration
SELECT
  @@default_storage_engine,
  @@port;

تتميز معمارية MySQL بنظام محركات التخزين القابلة للتبديل (Pluggable Storage Engines)، ويمكنك استعراض جميع المحركات المتوفرة في خادمك عبر الأمر SHOW ENGINES;:

  • محرك InnoDB (الافتراضي): المحرك القياسي الداعم للمعاملات الذرية وأقفال الصفوف والمفاتيح الأجنبية.
  • محرك MEMORY: يخزن البيانات في الذاكرة العشوائية للبيانات المؤقتة السريعة، وتُفقد بياناته عند إعادة تشغيل الخادم.
  • محركا CSV و ARCHIVE: محركات متخصصة للتعامل مع ملفات CSV أو أرشفة السجلات المضغوطة.
SQL
-- Display all storage engines and their transaction support
SHOW ENGINES;

يُعد محرك InnoDB المحرك الافتراضي والموصى به لجميع التطبيقات الحديثة لأنه يقدم أربع ركائز هندسية حاسمة:

  • دعم معاملات ACID الكاملة: يضمن تنفيذ العمليات المترابطة كوحدة واحدة لا تتجزأ مع إمكانية التراجع الكامل عند حدوث خطأ.
  • القفل على مستوى الصف (Row-Level Locking): يقفل الصف الذي يجري تعديله فقط دون تجميد بقية صفوف الجدول أمام المستخدمين الآخرين.
  • التكامل المرجعي للعلاقات: يدعم فرض قيود المفاتيح الأجنبية لحماية ترابط الجداول.
  • التنظيم العنقودي للمفتاح الأساسي: يرتب صفحات البيانات فيزيائياً وفق المفتاح الأساسي لتسريع البحث المباشر.
SQL
-- Check the active InnoDB storage engine version
SELECT @@innodb_version, @@default_storage_engine;

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

  • ذاكرة التخزين المؤقت (InnoDB Buffer Pool): مساحة مخصصة في الذاكرة العشوائية تحتفظ بصفحات البيانات والفهارس (بحجم 16 KB للصفحة) لتلبية الاستعلامات المتكررة من الذاكرة مباشرة.
  • سجل الإعادة (Redo Log): سجل متسلسل يوثق كل تعديل قبل كتابته النهائية على القرص، مما يتيح استعادة البيانات تلقائياً عند انقطاع التيار.
SQL
-- 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عرضة لتلف الجداول عند الانقطاع المفاجئ
دعم المفاتيح الأجنبيةمدعوم ومفروض برمجياًغير مدعوم
SQL
-- 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

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 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

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 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
واجهة البرمجة الداخلية التي تربط طبقة محسن الاستعلامات بمحركات التخزين القابلة للتبديل.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. نفّذ أمثلة SQL المشروحة في قسم طبقات معمارية الخادم والعميل على خادم MySQL 8 المحلي وتحقق من النتيجة.

  2. بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم محلل SQL ومحسن الاستعلامات وقارن مخرجات خادم MySQL.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

8أسئلة 3أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي8 أسئلة تنتظرك
01

ما الطبقات الثلاث التي تتكون منها المعمارية الداخلية لخادم MySQL 8.4؟

تتكون معمارية MySQL من طبقة إدارة الاتصالات، وطبقة معالجة SQL (المحلل والمحسن)، وطبقة محركات التخزين.

02

أي مكون في طبقة SQL يقيم الإحصائيات والفهارس المتاحة لاختيار خطة التنفيذ الأقل تكلفة؟

يتولى محسن الاستعلامات القائم على التكلفة (Cost-Based Optimizer) اختيار خطة التنفيذ المثلى.

03

في إصدار MySQL 8.4، يُحفظ قاموس بيانات النظام داخل جداول InnoDB المحمية بدلاً من ملفات .frm القديمة.

صواب؛ وحّد إصدار MySQL 8 قاموس البيانات داخل جداول InnoDB لضمان عدم تلف بيانات المخطط.

04

ما هو محرك التخزين الافتراضي في إصداري MySQL 8.0 و 8.4 LTS؟

محرك InnoDB هو محرك التخزين الافتراضي في خادم MySQL 8.

05

أي من المزايا الهندسية التالية يدعمها محرك التخزين InnoDB؟ (اختر كل ما ينطبق)

يدعم محرك InnoDB معاملات ACID، والقفل على مستوى الصف، والمفاتيح الأجنبية، والاستعادة التلقائية بعد الأعطال.

06

ما الحجم الافتراضي لصفحة البيانات الواحدة داخل ذاكرة InnoDB Buffer Pool؟

الحجم الافتراضي لصفحة بيانات InnoDB هو 16 كيلوبايت (16384 بايت).

07

يسجل ملف Redo Log في محرك InnoDB التعديلات بالتسلسل على القرص لإتاحة الاستعادة التلقائية للبيانات عند انقطاع الطاقة.

صواب؛ يضمن سجل Redo Log استعادة جميع التعديلات المؤكدة تلقائياً عند إعادة تشغيل الخادم بعد أي توقف مفاجئ.

08

لماذا يتراجع أداء محرك MyISAM القديم مقارنةً بمحرك InnoDB عند وجود عمليات كتابة متزامنة كثيفة؟

لأن محرك MyISAM يقفل الجدول بالكامل عند أي عملية كتابة، بينما يقفل محرك InnoDB الصفوف المتأثرة فقط.