أيهما و متى تفضل MyISAM / Innodb

 

أيهما و متى تفضل MyISAM / Innodb
بعد مشكلة حدثت معى قررت ان اتحدث عن الموضوع وهو محركات قواعد البيانات ايهما افضل متى ولماذا وما المميز والفروقات بينهم ولكن قبل ان اقوم بكتابة هذا يجب على البحث لاعرف ان كان تحدث غيري فى الموضوع ووجدت مقال جميل ومميز ولكن قبل المقال اشرح لكم المشكلة التى دفعتنى لذلك
لدى موقع يعتمد على قاعدة بيانات وتستخدم InnoDB كمحرك وموقع اخر محرك MyISAM 
ويحدث بعض المشاكل فى السيرفر لأجد ان الـ InnoDB يتوقف اما MyISAM يستمر فى عرض البيانات 

والان معا المقال :

أيهما و متى تفضل : MyISAM و Innodb هما database Engines يمكن المفاضلة بينهما وفقاً للتطبيق المستخدم فى قاعدة البيانات , فالمعروف أن MyISAM هى الأسرع بينما Innodb هى الأكثر أماناً حيث يتوفر فيها شروط يطلق عليها الـ ACID و هى تلك الشروط اللازمه فى الأمور الخاصة بعمليات الدفع و الشراء عبر الإنترنت و لتوضيح المقصود بال ACID سأطرح هذا المثال :

إذا كنت تريد حجز تذكرة طائرة لفردين , ف فلابد من أن تقوم بحجز مقعدين , إذا حدثت مشكلة فى قاعدة البيانات أثناء عملية تسجيل طلبك فلا يصح أبداً أن يتم حجز تذكرة واحده لك و الأخرى لم تتمكن قاعدة البيانات من إتمامه , لذلك فإن إستخدام MyISAM فى هذه الحالة قد يؤدى لوقوع مثل هذه المشكلات , أم إستخدام Innodb فإنه يحول بين وقوعها إما بحجز المقعدين أو عدم إتمام الحجز أسااساً

و ال ACID هو إختصار لـ : Atomicity, Consistency, Isolation, Durability

و ال Atomicity هى المصطلح الذى يشير إلى المثال المطروح بالأعلى و بقية المصطلحات تشير إلى :

اولا : Consistency : الثبات و عدم قابلية الإنتهاك و ألا يتم أمر تسجيل فى قاعدة البيانات طرأ عليه تغيير أثناء أرسال الأمر لها

ثانيا : Isolation : العزل و هى الطريقة التى تحدد كيفية تأثر العمليات المرتبطة بالعملية التى تم تغييرها

ثالثا : Durability : قوة التحمل و هى تجعل قاعدة البيانات أكثر تحملاً للطلبات المرسلة و حفظها حفظاً نهائياً حتى لو تحطم النظام و حدث خلل فيه فطالما أنك حصلت على تأكيد بإتمام العملية فكن على ثقة أنه تم حفظها

فمتى تستخدم كل منهما فى تطبيقاتك ؟

ماذا يقول الاخرين عن أيهما و متى تفضل MyISAM / Innodb