ارسال پاسخ 
 
امتیاز موضوع:
  • 4 رأی - میانگین امتیازات: 4.25
  • 1
  • 2
  • 3
  • 4
  • 5
مفهوم Index و تاثیر آن بر روی برنامه
نویسنده پیام
CPSD Admin آفلاین
مدیر سایت
*******

ارسال‌ها: 177
تاریخ عضویت: تير ۱۳۸۹
اعتبار: 0
ارسال: #1
Information مفهوم Index و تاثیر آن بر روی برنامه
سلام

مطلب رو با مثال زیر شروع میکنم :

مطمئناً همه ما دفتر تلفنهایی که در گوشه صفحه اونها تقسم بندی ( در اینجا الفبایی ) وجود داره رو دیدیم .

عملکرد این بخش امکان دسترسی سریعتر به اطلاعات هستش . در دیتا بیس به نوعی این عملکرد رو Index انجام میده ولی با تفاوتهایی خاص

Index الزاماً عدم پیمایش کل رکوردها رو به همراه نداره . به سناریوهای زیر توجه کنید :

رکورد مورد بحث در آخرین ردیف قرار داره ( که البته برای وقوع همیشگی این مورد دیگه باید دیوار خیلی کوتاهی داشته باشید )

ولی دومین امر تنظیمات دو گانه Index هستش . در حالتی که مجوز تکرار داده شده باشه ( Duplicates OK ) پروسه پیمایش همچنان تا آخرین رکورد ادامه پیدا میکنه در واقع شما با انتخاب حالت No Duplicates هست که به اکسس این اطمینان خاطر رو میدید که به اولین رکورد مورد نظر که رسیدی دیگه به دنبال رکورد دیگه ای نگرد حال این رکورد میتونه :

در ردیف اول باشه ( افزایش سرعت بسیار بالا در دیتابیسی با تعداد رکورد زیاد )
در اواسط باشه ( افزایش سرعت قابل توجه در دیتابیسی با تعداد رکورد زیاد )
در انتها باشه ( شاهد هیچ افزایش سرعتی نباشیم بلکه تا حدودی نیز شاهد کندی عملیات نیز باشیم )
توضیح : حالت سوم کندتر به دلیل اینکه در هر صورت عمل پیمایش تا انتها ادامه می یابد ولی اینبار پروسه متب سازی نیز به سیستم تحمیل شده است .

اعمالی که باعث بی تاثیری و ناکارمدی Index میشه تعدد Index های یک جدول و اینکه Index بر روی چه چیزی گذاشته شده هستش . ( به طور مثال از دید من Index گذاری مبلغ منطقی نیست )

با هم به مثال دفتر تلفن رجوع میکنم :

تقسیم بندی های دفتر تلفن تا وقتی ارزشمنده که گروههای انتخابی نه خیلی بزرگ و نه خیلی کوچیک باشن به طور مثال در یک دفتر تلفن استاندارد حرف الف در یک گروه , حرف ب در یک گروه و ... قرار میگیرن حالا تصور کنید که تقسم بندی این دفتر تلفن رو خیلی خرد کنیم و برای نبیل پیروزمهر یک صفحه و برای X و Y هم هر یک , یک صفحه رو در نظر بگیریم . در این حالت Index گذاری به عنوان یک ضد سیستم عمل میکنه و نبودش بهتر از بودنشه .

امری که منع میشه تعدد فیلدهای شاخص گذاری شده هستش .

به نظرم Index گذاری باعث کاهش سرعت در دیتا بیسی با تعداد رکورد کم نمیشه .

مبحث Index یکی از مباحث پایه ای دیتا بیسها هستش و اطلاع از نحوه رفتار این خصیصه میتونه در ارائه یک برنامه کارآمد تاثیر گذار باشه .

پی نوشت :

در کنار مشخصه Index مولفه دیگه ای وجود داره با نام Primary Key

این دو مشخصه دارای فصل مشترکی زیادی هستند و لیکن تفاوتهای اختصاصی زیر رو با هم دارند

Primary Key اشاره به يك موجوديت منحصر به فرد داره ، مقدار Null‌ رو هم نمي پذيره ( در حالت ساده ، مجوز خالي بودن فيلد رو نميده )

Indexed Field عملكردي مشابه با همون Primary Key‌ داره ( در حالت No Duplicate ) با اين تفاوت كه اجازه مقدار Null‌ رو در فيلد ميده

بر همين اساس اگر قصد داريد كنترل كاملي بر روي عدم تكرار يك فيلد داشته باشيد بايد از Primary Key‌ استفاده كنيد ، چرا كه Index‌ تنها در حالتي كه مقداري در داخل فيلد وارد شده باشه بر روي عدم تكراري بودن نظارت ميكنه

معمولا از Index‌ بر روي فيلدهايي استفاده ميشه كه بيشتر مورد جستجو قرار ميگيرند

درگاه : وب سايت | فروشگاه | وبلاگ
۱۰ آذر ۱۳۹۰ ۰۸:۰۷ عصر
مشاهده‌ی وب سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پیام‌های داخل این موضوع
مفهوم Index و تاثیر آن بر روی برنامه - CPSD Admin - ۱۰ آذر ۱۳۹۰ ۰۸:۰۷ عصر

پرش به انجمن:


‍CPSD.ir Website

وب سايت      |      وبلاگ      |      فروشگاه

 

Center Point SD - Software Developer

Yaldex PopUp