نمایش نتایج: از شماره 1 تا 4 , از مجموع 4

موضوع: MyISAM یا InnoDB کدام یک بهتره

  1. #1
    عضو انجمن
    تاریخ عضویت
    Jun 2016
    نوشته ها
    113
    تشکر تشکر کرده 
    18
    تشکر تشکر شده 
    33
    تشکر شده در
    30 پست

    پیش فرض MyISAM یا InnoDB کدام یک بهتره

    سلام دوستان من دیتابیس سایتم InnoDB هست یعنی این فرمتی هست مخاستم ببینم فرمتش رو به MyISAM تغییر بدم در سرعت و کارارایش تاثیر میزاره یا نه اگه نظر همگی اینکه MyISAM بهتره چطوری باید حین ایمپورت دیتابیس با فرمت MyISAM ایمپورت کنم یعنی دستورش چیه که بعد ایمپورت تو پی اپ پی ما ادمین فرمت تیبل ها MyISAM بشن چون دستی نمیشه اینهمه تیبل رو به MyISAM تغییر داد راستش الان فرمت تیبل ها InnoDB هست که خیلی کرش میشه یا ارور داریم کند هم هست میخاستم به MyISAM تغییر بدم ولی میخام نظر شما رو هم بدونم و اینکه بگید دستور تغییر فرمت در ایمپورت دیتابیس به فرمت MyISAM چیه خیلی ممنون میشم راهنمایی بفرمایید

  2. # ADS




     

  3. #2
    کاربر اخراج شده
    تاریخ عضویت
    Nov 2015
    محل سکونت
    CA
    نوشته ها
    382
    تشکر تشکر کرده 
    311
    تشکر تشکر شده 
    692
    تشکر شده در
    292 پست

    پیش فرض پاسخ : MyISAM یا InnoDB کدام یک بهتره

    نقل قول نوشته اصلی توسط entel نمایش پست ها
    سلام دوستان من دیتابیس سایتم InnoDB هست یعنی این فرمتی هست مخاستم ببینم فرمتش رو به MyISAM تغییر بدم در سرعت و کارارایش تاثیر میزاره یا نه اگه نظر همگی اینکه MyISAM بهتره چطوری باید حین ایمپورت دیتابیس با فرمت MyISAM ایمپورت کنم یعنی دستورش چیه که بعد ایمپورت تو پی اپ پی ما ادمین فرمت تیبل ها MyISAM بشن چون دستی نمیشه اینهمه تیبل رو به MyISAM تغییر داد راستش الان فرمت تیبل ها InnoDB هست که خیلی کرش میشه یا ارور داریم کند هم هست میخاستم به MyISAM تغییر بدم ولی میخام نظر شما رو هم بدونم و اینکه بگید دستور تغییر فرمت در ایمپورت دیتابیس به فرمت MyISAM چیه خیلی ممنون میشم راهنمایی بفرمایید
    موتور ذخیره سازی چه وظایفی دارد؟
    موتورهای ذخیره سازی مسئول ایجاد، بروزرسانی، حذف و مشاهده اطلاعات (CRUD)در جداول پایگاه داد می باشند. در پایگاه داده MySQL دو موتور ذخیره سازی InnoDB و MyISAM وجود دارد که در بخش های بعد تفاوت های آنها بررسی می گردد.
    سرعت دسترسی به داده ها
    هر جدول InnoDB یک اندیس خاص بنام اندیس خوشه ای (clusterd index) دارد که رکوردها در آن ذخیره می شوند. دسترسی به داده ها از طریق اندیس جستجو به این علت سریعتر است که داده های هر رکورد و اندیس جستجوی آن در یک صفحه قرار دارند. در جداول بزرگ، ساختار اندیس خوشه ای اغلب باعث کاهش عملیات I/O نسبت به ساختارهایی که اندیس و داده در صفحات متفاوتی قرار دارند می شود. MyISAM از یک فایل جهت ذخیره رکوردها و فایل دیگری جهت اندیس ها استفاده می کند.
    در InnoDB اندیس خوشه ای بر اساس کلید اصلی ایجاد می شود. در بخش اندیس های ثانویه (secondary indexes) نیز InnoDB عملکرد بهتری دارد. این اندیس ها علاوه بر ستون های خود، ستون های کلید اصلی را نیز در بر می گیرند و InnoDB از مقدار کلید اصلی برای جستجو در اندیس خوشه ای استفاده می کند.
    در MySQL جهت افزایش سرعت و کارایی، داده ها در بافرهای حافظه کش می شوند. MyISAM از بافرهای خاصی بنام Key cache به منظور کش کردن اندیس ها استفاده می کند و برای کش کردن داده های دیگر از بافرهای حافظه سیستم عامل استفاده می کند. در مقابل InnoDB اندیس ها و داده ها را در فضایی موسوم به buffer pool و در قالب درخت های B-Treeکش می کند.
    پشتیبانی از تراکنش ها
    طراحی InnoDB بر اساس مدل ACID است که تراکنش ها با قابلیت هایی همچون commit ، roll back و بازیابی در زمان کرش را پشتیبانی می کند. در InnoDB با فعال بودن حالت autocommit ، تمام فعالیت کاربر درون تراکش انجام می گیرد. اگر autocommit فعال نباشد می توان بصورت دستی از commit و roll back استفاده نمود. Commit تغییرات انجام شده در تراکنش فعلی را بصورت دائمی ثبت می کند و roll back تمام تغییرات تراکنش جاری را لغو می کند.
    در مقابل، موتور MyISAM از تراکنش ها پشتیبانی نمی کند.
    موازی سازی
    یکی از مشکلات بزرگ MyISAM نداشتن قابلیت قفل کردن سطح ردیف داده است. در InnoDB هنگامی که تعداد زیادی عملیات نوشتن وجود دارد با توجه به قفل سطح ردیف، این عملیات می توانند بطور همزمان اجرا شوند اما قابلیت قفل کردن سطح جدول در MyISAM اجازه چنین کاری را نمی دهد. InnoDB در سطوح بالای موازی سازی مشکل قفل کردن دو به دو ناسازگار را دارد ولی باز هم برای این موضوع استفاده می شود.
    پایداری و نگهداری
    دیتابیس ها در اثر کرش کردن یا خراب شدن سخت افزار ممکن است دچار آسیب دیدگی شوند. موتور MyISAM بسادگی تحت تاثیر این عوامل قرار می گیرد و بدلیل عدم وجود مکانیزمی که به یکپارچه سازی داده ها کمک کند، نیاز به repair دارد و ضمنا هیچ ضمانتی برای بازیابی کامل داده ها وجود ندارد. اما InnoDB بگونه ای طراحی شده که دوام و پایداری را تضمین کند و خصوصا هنگام وقوع مشکلات سخت افزاری تا حد زیادی خرابی داده ها را کاهش می هد.
    ایجاد فایل های پشتیبان (Back-up)
    در InnoDB می توان بسادگی در حین فعالیت دیتابیس نسخه پشتیبان تهیه کرد. به این روش اصطلاحا hot back-up گفته می شود. اما در MyISAM ایجاد فایل پشتیبان منجر به قفل شدن جداول و Read only شدن آنها می گردد. در مقیاس بزرگ تکنیک replication و ایجاد یک سرور دیگر برای غلبه بر این مشکل MyISAM بکار می رود.
    در تکنیک replication یک سرور Master و چندین سرور Slave داریم. تمام عملیاتی که منجر به تغییر دیتابیس می شوند فقط بر روی سرور Master اجرا شده و یک log از آنها ایجاد می شود. سپس سرورهای Slave به کمک این log خود را با سرور Master سینک (همگام) می کنند. در حالت معمول سرورهای Slave تنها جهت خواندن اطلاعات استفاده می شوند. هر یک از سرور های Slave نقش یک نسخه پشتیبان از اطلاعات دیتابیس را دارند و راهکاری جهت حل مشکل پشتیبان گیری آنلاین موتور MyISAM محسوب می گردد.
    تفاوت های دیگر
    · ذخیره تعداد رکوردها
    در InnoDB بر خلاف MyISAM تعداد رکوردها ذخیره نمی شود و از دستور count جهت تعیین تعداد رکوردها استفاده می شود. استفاده از این دستور با شرط where معمول است اما بدون این شرط زمانبر است و بهتر است روش های جایگزین استفاده گردد.
    · خاصیت Full text در اندیس ها
    جستجوی Full text برخلاف like که بر روی کاراکترها عمل می کند، پرس و جو را روی کلمات انجام می دهد. بعنوان مثال اگر در جستجوی یک ترکیب بر روی چندین میلیون رکورد باشیم، با like ممکن است چندین دقیقه ولی با Full text search طی چند ثانیه انجام می شود.
    در تمام نسخه های MyISAM، اندیس ها از Full text پشتیبانی می کنند اما تنها از MySQL 5.6.4 به بعد در موتور InnoDB می توان از جستجوی Full text بر روی اندیس ها بهره گرفت. در حال حاضر بصورت گسترده از این خاصیت InnoDB استفاده نمی شود.

  4. تعداد تشکر ها ازkiava به دلیل پست مفید


  5. #3
    عضو انجمن
    تاریخ عضویت
    Oct 2015
    نوشته ها
    788
    تشکر تشکر کرده 
    569
    تشکر تشکر شده 
    1,269
    تشکر شده در
    882 پست

    پیش فرض پاسخ : MyISAM یا InnoDB کدام یک بهتره

    سلام
    تاثیر هم بذاره آنچنان محسوس نیست که مثلاً بگید چقدر عالی شد
    این دو تا بیشتر در داده های خیلی سنگین و دیتابیس های بزرگ تفاوت خودشون رو نشون میدن نه در پروژه های کوچک یا مثلاً یه سایت وردپرسی.

  6. #4
    عضو انجمن alimosavi آواتار ها
    تاریخ عضویت
    Mar 2009
    نوشته ها
    380
    تشکر تشکر کرده 
    197
    تشکر تشکر شده 
    658
    تشکر شده در
    392 پست

    پیش فرض پاسخ : MyISAM یا InnoDB کدام یک بهتره

    شما از InnoDB استفاده کنید .
    به نام او ....

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. تغییر جداول دیتابیس از MyISAM به InnoDB
    توسط joomla2 در انجمن سوالات و مشکلات
    پاسخ ها: 2
    آخرين نوشته: June 10th, 2016, 10:49
  2. مقایسه موتور های ذخیره سازی Innodb و MyISAM
    توسط Mr.Te0 در انجمن مباحث و منایع آموزشی
    پاسخ ها: 3
    آخرين نوشته: October 4th, 2015, 16:51
  3. سوال : innodb یا myisam
    توسط raminramz در انجمن سوالات و مشکلات
    پاسخ ها: 2
    آخرين نوشته: November 23rd, 2014, 08:13
  4. تغییر نوع جداول از InnoDB به MyISAM
    توسط Ashkankamangar.ir در انجمن سوالات و مشکلات
    پاسخ ها: 10
    آخرين نوشته: December 7th, 2012, 01:30
  5. myIsam و InnoDB و یک سوال بسیار کلیدی
    توسط konjkav در انجمن مباحث و منابع آموزشی
    پاسخ ها: 0
    آخرين نوشته: November 26th, 2011, 11:12

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •