برای ساخت یه جدول کدام گزینه بهینه تر و کم حجم تر هست و سرعت بازیابی از ان بیشتر است
MYISAM یا InnoDb
برای ساخت یه جدول کدام گزینه بهینه تر و کم حجم تر هست و سرعت بازیابی از ان بیشتر است
MYISAM یا InnoDb
بهینه بودن به سایت و طراحی دیتابیس بستگی داره و نسبت به اینا باید یکی از این دو رو انتخاب کنید. اما اگه سایتی با حجم بالای اطلاعات و بازدید خیلی زیاد ندارید، بهترین گزینه MYISAM هست
حجم MYISAM همیشه از Innodb کمتره
سرعت Select کردن در MYISAM بیشتره
شما اگر جداولی دارید که باهم رابطه ندارند (Foreign Key تعریفف نکردید) بهتر است از موتور MyISAM استفاده کنید که سریع تر هست. اما در صورت درخواست برای تعریف و ایجاد رابطه ناچار به استفاده از موتور InnoDB هستید.
اینم من اضافه کنم که واسه پشتیبان گیری از جداولی که 24 ساعته در حال دستکاری داده هستند کار با innodb نتیجه ی بهتری داره. اما اگه دیتابیس در اوقات مشخصی بیکاره myisam گزینه ی بهتریه. چون با copy و paste از پوشه حاوی پایگاه، بک آپ گرفته میشه.
در کل باید بگم:
myisam: بازدهی بیشتر
innodb: امکانات بیشتر
کی گفته اینو ....
درسته تو MyISAM نمیتونی FK درست کنی ولی این دلیل نمیشه که ازش بخاطر این استفاده نکنیم ، ما میتونیم کلید FK رو از تو یه جدول دیگه درست کنیم و رابطه هامون رو ایجاد کنیم یعنی رابطه هامون خودشون به جدول بشه .... بعد تو کد نویسی میتونیم خواسته هامونو ایجاد کنیم .
درسته که با کد برنامه میشه کلید خارجی در myisam رو کنترل کرد اما مطمئنا" سرعت کنترل با کد در مقایسه با استفاده از innodb (در این حالت) پایین تره. چون باید با کد همیشه reference ها کنترل بشه و برای ویرایش و حذف cascade رو در نظر گرفت. در ضمن روی تغییرات کسایی که بدون واسطه کد برنامه (مثلا" خود sql ) به پایگاه شما دسترسی پیدا می کنند نمیشه کنترلی داشت. خود سایت mysql استفاده از موتور مناسب با توجه به پیکربندی هر جدول رو زیاد توصیه کرده.