تغيير الجداول من MyISAM إلى InnoDB جعل النظام بطيء

StackOverflow https://stackoverflow.com/questions/457060

  •  19-08-2019
  •  | 
  •  

سؤال

مرحبا أنا باستخدام Mysql 5.0.x

لقد تغيرت الكثير من الجداول من MyISAM إلى InnoDB

مع الجداول MyISAM استغرق الأمر حوالي 1 دقيقة لتثبيت قاعدة البيانات لدينا مع ك InnoDB يستغرق حوالي 15 دقيقة لتثبيت نفس قاعدة البيانات

لماذا InnoDB تأخذ وقتا طويلا ؟

ما الذي يمكنني القيام به بسرعة ؟

قاعدة البيانات تثبيت هل الخطوات التالية

1) قطرات المخطط

2) إنشاء المخطط

3) إنشاء الجداول

4) إنشاء الإجراءات المخزنة

5) إدراج البيانات الافتراضية

6) إدخال البيانات عن طريق إجراء مخزن

تحرير:

فإن إدخال البيانات الافتراضية يأخذ معظم الوقت

هل كانت مفيدة؟

المحلول

تعديل إدخال البيانات خطوة لبدء المعاملة في بداية لارتكاب ذلك في نهاية المطاف.سوف تحصل على تحسن, أنا أضمن ذلك.(إذا كان لديك الكثير من البيانات ، قد ترغب في كسر الصفقة حتى في الجدول.)

إذا كنت لا تستخدم المعاملات في كل شيء ، ثم يجب عليك تعيين paramater innodb_flush_log_at_trx_commit 2.هذا وسوف تعطيك الكثير من الأداء مرة أخرى لأنك سوف يكاد يكون من المؤكد auto_commit تمكين وهذا يولد الكثير من المعاملات من ك InnoDB الافتراضي معلمات تكوين.هذا الإعداد توقف ومن دون داع التنظيف القرص مخازن على كل يرتكبها.

نصائح أخرى

15 دقيقة لا يبدو مبالغا فيه بالنسبة لي.بعد كل شيء, انها لمرة واحدة تكلفة.

لست متأكدا, ولكن أتصور أن جزءا من التفسير هو التكامل المرجعي ليس مجانا.ك InnoDB القيام بمزيد من العمل لضمان ذلك ، لذا بالطبع سوف يستغرق المزيد من الوقت.

ربما السيناريو الخاص بك يحتاج إلى تغيير لإضافة قيود بعد إنشاء الجداول.

مثل duffymo قال: تعطيل القيود الخاصة بك(فهارس foreing/المفاتيح الأساسية) قبل إدخال البيانات.

ربما يجب عليك استعادة بعض الفهارس قبل إدراج البيانات عبر الإجراء المخزن إذا كان استخدام الكثير من حدد البيانات

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top