index كردن در mysql

سلام
چندتا سوال در مورد index كردن در mysql
1- چه مزيتي و يا چه معايبي دارد ؟
2- اصلا چه موقع نياز به ايندكس كردن يك فيلد هست ؟
3- چه فيلدهايي بايد ايندكس بشن و كدام ها نبايد بشن ؟؟
و كلا يك توضيح مفصل در اين مورد ميخوام
 

Cyletech

Member
ببینید index یه بحث گسترده هست تو mysql و کلاً بهینه سازی پایگاه داده. همینطوری نمیشه چیزی گفت. یه منبع خوب پیدا کردم فارسی اینو اول مطالعه کن
http://farhadi.ir/blog/1389/08/13/dealing-with-large-mysql-databases/
و منم کمی برات توضیح میدم.
کلاً بحث بهینه سازی پایگاه داده روی دیتابیس های حجیم مهمه. مثلاً دیتابیس آخرین پروژه خودم بیش از 100 مگابایت هست. خب این یعنی حجیم. من باید واسه اون فیلد هایی که همش باهاشون کار می کنم ایندکس بذارم.
حالا ایندکس چیه؟ من یه عکسی دیدم که الآن یادم نیست چی بود آدرسش ولی اینو نشون میداد که ایندکس یه رابطه یک به یک هست و وقتی فیلدی ایندکس نمیشه ، موتور mysql مجبوره کل اون فیلد های درخواستیتو بررسی کنه. ولی وقتی ایندکس گذاری می کنی روش ، دیگه نمیاد کل فیلد هارو ببینه ، فقط همون ایندکس هاشو میبینه و ذخیره می کنه. این امر باعث افزایش کارایی (پرفورمنس) و سرعت عملکرد نرم افزارتون میشه. گاهی هم فقط بحث سر ایندکس ها نیست. ممکنه دلایل دیگه ای هم داشته باشه. بیشتر تحقیق کنی.
 

جدیدترین ارسال ها

بالا