تفاوت‌ انجین های InnoDB و MyISAM در MySQL

پرسیده شده
فعالیت 1477 روز پیش
دیده شده 2153 بار
10

یک اشاره کوتاه در این ویدیو آموزشی درباره‌ی تفاوت‌های بین InnoDB و MyISAM شد که در اینجا با هم تفاوت‌های بین این دو موتور ذخیره سازی را بیشتر درک می‌کنیم.

  1. اولین چیزی که باید بدانیم این است که موتور ذخیره سازی MyISAM به طور پیش‌فرض توسط MySQL انتخاب شده است.
  2. MyISAM بر خلاف InnoDB نمی‌تواند Transaction‌ها را پشتیبانی بکند.
  3. هیچ امکانی در MyISAM به اسم row-level locking ( یک تکنیک در سیستم مدیریت پایگاه داده است که که دسترسی کاربران را از یک row یا ردیف می‌بندد تا در هنگام بروزرسانی هیچ کاربری به آن دسترسی نداشته باشد) و همچنین یک رابطه درست بین جداول وجود ندارد اما در InnoDB امکان پذیر است.
  4. همان‌طور که InnoDB از row-level locking پشتیبانی می‌کند، سرعت insert و update کردن بالاتر از MyISAM است.
  5. InnoDB برعکس MyISAM از ایندکس FULLTEXT ساپورت نمی‌کند.
  6. کارایی سرعت در MyISAM بیشتر از InnoDB است.
  7. در پایگاه ‎داده‌های بزرگ InnoDB در مقایسه با MyISAM گزینه مناسب‌تری است و برای پایگاه داده‌های کوچک MYISAM گزینه مناسبی است.
  8. InnoDB از ACID که مخفف (Atomicity , Consistency, Isolation and Durability) است که اگر بخواهیم آن‌ها را جداگانه ترجمه کنیم، ظرفیت اتمی (Atomicity)، پایداری (Consistency)، جداسازی (Isolation)، دوام (Durability) است که برای Transactionها می‌باشد را پشتیبانی می‌کند که در MyISAM این ممکن نیست.
  9. در InnoDB فیلد AUTO_INCREAMNT بخشی از Index است.
  10. هنگامی که در InnoDB یک جدول حذف می‌شود دیگر نمی‌توان آن را دوباره برپا کرد.
  11. InnoDB داده‌ها را به عنوان یک سطحی از جدول ذخیره سازی نمی‌کند، برای مثال اگر ما (aggregate function) یا به اصطلاح تابع (*)count را اجرا کنیم نتیجه آن را ذخیره نمی‌کند و اگر دوباره آن را اجرا کنیم کل فیلدهای مورد نظر را بررسی میکند در حالی که در MyISAM این داده‌ها ذخیره می‌شوند و به راحتی قابل دسترس می‌باشند.

امیدوارم براتون مفید بوده باشه.

 

فایل پیوست

امیر صالحی
امیر صالحی

24 فروردین 99

1
حذف شده

ممنونم امیرجان بابت به اشتراک گذاری دانشت 

فایل پیوست

لقمان آوند

توسط

لقمان آوند

25 فروردین 99

حذف شده
باعث افتخاره
امیر صالحی

25 فروردین 99

3
حذف شده

میشه جای پاک کردن دیتابیس tasks از دستور SQL زیر استفاده کرد:

ALTER TABLE tasks MODIFY COLUMN id int UNSIGNED AUTO_INCREMENT PRIMARY KEY;

 

فایل پیوست

AmiR Jafargholi

توسط

AmiR Jafargholi

31 فروردین 99