1. تطوير الويب
6

MyISAM أو InnoDB ؟

  • billal em
  • 2013-09-11T14:12:53+00:00
  • رابط مختصر
يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

  • الأفضل
  • الأحدث
  • الأقدم
19
aalagha 2013-09-11T15:59:30+00:00 أضف ردا
  • رابط مختصر

شخصياً أجد InnoDB أفضل وهو يختلف ببعض الأمور عن MyISAM أهمها:

  • InnoDB يعتبر ACID compliance ويدهم Transactions وهذا أمر ضروري للمعاملات المالية. [1]

  • InnoDB أفضل اذا كنت تحتاج لعدد كبير من INSERT بشكل مستمر لأنه يعتمد أسلوب row-level locking بينما MyISAM يقفل الجدول كاملاً table-level locking.

  • MyISAM أسرع من InnoDB عند الاستعلام SELECT ويوفر Full Text Search بسيط مقابل التضحية بالأمور السابقة.

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

[1]

https://en.wikipedia.org/wi...
17
doonfrs 2013-09-11T21:34:09+00:00 أضف ردا
  • رابط مختصر

innodb يسبق myisam دوماً عند استرجاع البيانات select ، لكن الأمر لا يقف فقط عند السرعة .

أستخدم myisam عندما يكون الجدول ضخم جداً (لست بحاجة إلى transactions) ، الميزة الأساسية في myisam أنه بإمكانك التعامل مع قاعدة البيانات كمجلد وملفات حيث بإمكانك نقل قاعدة بيانات 10GB بزمن قصير

بينما بحاجة لعدة ساعات في حال كانت innodb لأنك ستضطر إلى تصدير البيانات و استيرادها واستيراد بيانات ضخمة عن طريق ملف sql عملية صعبة جداً وبحاجة إلى تعديلات كثيرة على إعدادات mysql وقد تفشل كثيراً أو يصاب المخدم بالجمود.

innodb يتميز ب transactional وهذه الميزة أساسية عند العمل خاصة بالأمور المالية ، حيث myisam قد يتسبب بأخطاء وبيانات غير متوقعة في حال حدث خطأ اثناء تنفيذ سلسلة استعلامات ولم يتم معالجة الخطأ برمجياً (حذف البيانات المضافة ، لكن ماذا عن update ؟ )

أحياناً هناك جداول أريدها أن تكون خارج سياق أي transaction ، مثل جدول يحتوي على حالة تقدم progress في عملية معينة يستخدم فيها transaction ، في هذه الحالة يجب أن يكون myisam كي لا ينطبق عليه transaction و بالتالي لا يمكن قراءة البيانات منه حتى يتم تثبيت العمليات .

بالمناسبة في MariaDB وهي أحد النسخ المطورة من Mysql بامكانك إنشاء innodb مع ميزة transaction أو بدونها ... بالإضافة إلى إعدادات أخرى و تحسينات على الأداء.

1
thamood 2013-09-11T14:28:46+00:00 أضف ردا
  • رابط مختصر

إذا كنت تبحث عن الأداء عليك بـ MyISAM ولكنك ستفقد بعض الأمور مثل الintegrity constraints

1
uid0 2013-09-12T17:46:30+00:00 أضف ردا
  • رابط مختصر

ملاحظة بسيطة يمكنك ضبط اعدادات innodb من خلال ملف my.cnf ليكون لكل جدول ملف وليس ملف واحد للقاعدة كما هو الحال بالوضع الطبيعي لجداول innodb

بحيث يتم انشاء ملف خاص بكل جدول كما هي الحالة في MyISAM

تطوير الويب

مجتمع لمناقشة وتبادل الخبرات حول تطوير الويب. ناقش أحدث التقنيات، اللغات، والأدوات في عالم تطوير المواقع والتطبيقات. شارك مشاريعك، اسأل عن نصائح، وتعاون مع مطورين محترفين وهواة.

103 ألف متابع

أطلق موقعك الإلكتروني في دقائق

صمم موقعك كاملا بالسحب والإفلات بدون خبرة برمجية، واحجز مكانك على الإنترنت.

أنشئ موقعك الآن

اقرأ أيضًا

  • كيف أنشئ قاعدة بيانات InnoDB لم أجد الخيار
  • ما الفرق بين محركات قواعد البيانات InnoDB و MyISAM
  • أيهما و متى تفضل MyISAM / Innodb
  • سؤال: هل هذه الطريقة صحيحة في تشفير كلمة المرور في mysql و php ؟
  • مشكلة في الإدخال إلى قاعدة بيانات MySql عن طريق Forms : [بلغة PHP]

انسخ هذا الرابط:

تنبيه