لدي Drupal ، وأنا أعاني من مشكلات في الأداء. لقد وجدت كيف أقوم بتحويل قاعدة بيانات من MyISAM إلى InnoDB؟ تشير إلى أن الأداء قد يتحسن عن طريق التبديل.
كيف يمكنني معرفة ما إذا كانت قاعدة بيانات MySQL الخاصة بي هي InnoDB أو MyISAM؟
يمكنك تشغيل استعلام مخصص:
SELECT TABLE_NAME, ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database_name'
لسرد جميع الجداول في قاعدة البيانات الخاصة بك والمحرك المستخدم لكل منها.
بدلاً من ذلك ، يمكنك تسجيل الدخول إلى قاعدة البيانات الخاصة بك باستخدام phpMyAdmin وتحديد قاعدة البيانات الخاصة بك ... سترى المحرك في العمود Type
في قائمة الجداول.
أنا شخصياً أوصي Navicat لـ MySQL ، إنها واجهة مستخدم MySQL GUI لطيفة للغاية وتجعل اكتشاف مثل هذه الأشياء أمرًا سهلاً للغاية.
المصدر: http://www.electrictoolbox.com/mysql-table-storage-engine/
كانت أفضل تجربة لي أن أتخذ قرارًا على أساس كل جدول. يعد InnoDB أمرًا رائعًا ، لأنه يمكنه تجنب قفل الجدول (لا يمكن لأي عملية أخرى القراءة من الجدول أثناء كتابة عملية واحدة) ، ولكنه يؤدي بشكل رهيب باستخدام COUNT () الذي يُستخدم غالبًا لاستعلامات النداء.
(تحرير: يرجى الاطلاع على تعليق Clives أدناه)
هناك أيضًا آثار على إعداد MySQL ، اعتمادًا على قاعدة البيانات التي تستخدمها. إذا كان لديك حق الوصول إلى الخادم ، فيجب أن يكون mysqltuner خطوتك الأولى ، للتحقق من التكوين:
مجرد محاولة الأشياء للحصول على موقع ويب أسرع مثل تغيير السيارات بشكل أعمى ونأمل أن تحصل على أسرع في المرة القادمة.
جرب أولاً الفواكه المنخفضة المعلقة ، إذا لم تساعد ، حاول العثور على عنق الزجاجة الحقيقي.
غالبًا ما يكون مجرد استعلام بطيء في قاعدة البيانات والذي يحتاج إلى فهرس أو وحدة نمطية تقوم بالأشياء بطريقة بطيئة.
اكتشفت أيضًا اختلافات كبيرة بين المضيفين. إذا قمت بتثبيت جديد drupal خارج منطقة الجزاء ، فهل الأداء جيد؟ إذا لم يكن كذلك ، فقد حان الوقت للبحث عن مضيف آخر.
فقط تنبيه. إذا كان لديك Drupal 6 ، يمكنك تثبيت DBTuner ؛ يمكنها بسهولة نقل جداولك من MyISAM إلى InnoDB. نعم ، هناك وحدة لذلك!
FWIW عقدة 20K تقريبًا Drupal 6.x يواجه بعض مشكلات في الأداء وقد اخترت نقل جميع الجداول إلى InnoDB. كان الأمر سهلاً والطريقة التي تعاملت بها هي استخدام mysqldump ل تفريغ كل المحتوى إلى ملف sql ، استخدم محررًا (sed) لاستبدال جميع تكرارات MyISAM إلى InnoDB ثم أعد تحميل قاعدة البيانات من هذا الملف. أحد الجوانب السفلية هو أنه لا يمكنك استعادة مساحة من قاعدة بيانات InnoDB (IIRC) ولكن طالما تحتفظ بجداولك المكررة في قاعدة بيانات منفصلة ، فلن تواجه أي مشاكل. أوه ، لقد رأينا زيادة كبيرة في الأداء. ولأننا لدينا أربعة Drupal المثيلات العدد الهائل من ملفات الجدول تم حذفه من نظام الملفات (نعم ، إنه موجود داخل ملف InnoDB نفسه). هذا يساوي $ .02.