التصنيفات
Uncategorized

InnoDB و MyISAM مقارنة السلبيات والايجابيات

يعتبر هذان المحركان ( InnoDB و MyISAM ) الاكثر استخداماً وشيوعاً في قواعد بيانات MySQL.
في هذه المقارنة سنلخص مجموعة من نقاط القوة والضعف لدى المحركين.


يعتبر هذان المحركان ( InnoDB و MyISAM ) الاكثر استخداماً وشيوعاً في قواعد بيانات MySQL.
في هذه المقارنة سنلخص مجموعة من نقاط القوة والضعف لدى المحركين.

بدايةً دعونا نراجع امور مهمة حول المحركين وتاريخهما

  1. InnoDB احدث من ال MyISAM
  2. InnoDB اكثر تعقيداً من MyISAM
  3. InnoDB يحافظ على سلامة البيانات ( data integrity ) بحيث انه يتحقق من توافق البيانات ونوعها مع الحقل او العامود بينما يتساهل بذلك MyISAM
  4. InnoDB يقوم بعمل قفل على مستوى الصف ( row data locking ) عند ادخال البيانات منعاً للتضارب عند ادخال البيانات بينما يقوم MyISAM بقفل الجدول كاملاً (table data locking ) مما قد يؤخر التعديل والادخال في حالة كانت العمليات متعددة على الجدول.
  5. InnoDB يدعم عمليات الـ transactions والتي من خلالها يمكن تنفيذ سلسلة من الجمل وفي حال فشل احدها يمكن التراجع عن كل الاحداث بينما لا يدعم MyISAM ذلك.
  6. InnoDB يدعم الـ foreign keys والعلاقات بين الجداول بينما لا يدعم MyISAM ذلك
  7. InnoDB لديه امكانية افضل في استعادة البيانات في الحالات المفاجئة ( crash recovery ) بينما الالية اقل جودة وقدرة في ال MyISAM
  8. MyISAM يدعم عمليات البحث من نوع full-text بينما لا يدعم InnoDB ذلك

مع هذه الاختلافات الجوهرية لكل محرك منهما مجموعة من الإيجابيات والسلبيات ولكل منهما افضلية في بعض السيناريوهات والاستخدامات نستعرضها فيما يلي:

إيجابيات محرك InnoDB

  1. محرك InnoDB صارم جداً في صحة المدخلات وتوافقها مع نوع البيانات المعرفة في الجدول ولا يتساهل ابدا في ادخال نوع مختلف للبيانات ولا يقوم بأي عمليات تقريب او تحويل للبيانات لذلك هو مهم عندما تكون البيانات المدخلة دقيقة وحساسة
  2. المحرك اسرع في عمليات الادخال والتعديل لانه يعتمد على اقفال السطر المراد تعديله فقط ( row data locking ) بينما تتم باقي العمليات على الجدول دون اي مشاكل

سلبيات محرك InnoDB

  1. لان المحرك صارم في العلاقات بين الجداول وانواع البيانات المدخلة , لذلك يستهلك وقت اطول من مصممي قواعد البيانات ومدراء الانظمة لتنفيذ مخططات وانشاء قواعد البيانات
  2. يستهل موارد اكثر من النظام مثل الرامات والمعالجات
  3. لا يدعم ارشفة النص الكامل ( full-text indexing )

إيجابيات محرك MyISAM

  1. محرك بسيط لذلك هو اسهل بالتعامل خصوصاً بالانظمة الصغيرة والمبتدئين الذين لا يهتمون كثيراً بالعلاقات بين الجداول
  2. اسرع لانه يمتلك بنبية أبسط
  3. يدعم ارشفة النص الكامل ( full-text indexing )

سلبيات محرك MyISAM

  1. لا يدعم تكامل البيانات ( data integrity )
  2. لا يدعم تسلسل العمليات ( transactions )
  3. ابطاء في عمليات التعديل المتعدد بسبب الاعتماد على قفل الجدول (table data locking )

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *