به طور کل بله
ایندکس ها برای افزایش سرعت سرچ هستند و روی ستون هایی پیاده می شند که همونطور که گفتید سرچ زیادی روشون انجام میشه، تعداد رکورد های تکراری در اون سوتون زیاد هست، قابل نظم دهی هستند (مثل ترتیب حروف الفبا یا اعداد یا تاریخ) و ...
در واقع ایندکس بازه سرچ رو کمتر می کنه تا نیازی نباشه تمامی رکورد ها بررسی بشند
همانطور که دوستمون پاسخ دادن جواب هر دو سوالتون بله هست .
اما اینکه طرز کار ایندکس رو بدونید دقیقا چطور هست یک مثال ساده و قابل فهمش اینه
قبلنا که تلفن خونگی بود (الانام گاها هست) یک دفترچه تلفن کنارش میذاشتن و اسم افراد رو براساس نام خانوادگی توش درج میکرد .
این یک نوع ایندکس کردن براساس نام خانوادگی بود ، که به راحتی هر وقت میخواستید کسی رو پیدا کنید از اول اسمش شروع میکردید و رجوع میکردید به صفحه مورد نظر .
ایندکس ها دقیقا این کارو میکنن ، براساس فیلدی که انتخاب میکنید یک دفترچه میسازن (یک تیبل مجزا) و بصورت مرتب اون فیلد رو توش قرار میدند تا در فرآیند جستجو سریعتر رکورد مورد نظر رو پیدا کنند.
طبیعتا پر واضح هست که به ازای هر ایندکسی که میسازید یک دفترچه لازم هست ، پس در اصل ایندکس گذاری باید مرتب و اصولی باشه
اگر ایندکس گذاری زیاد باشه ، فرایند insert اطلاعات کند میشه ، حجم دیتابیستون میره بالا .
اگر ایندکس هم نگذارید فرآیند select کند میشه .
لذا اینکه سعی کنید حد اعتدال رو رعایت کنید .
فیلد هایی که همیشه روشون جستجو میشه رو ایندکس بگذارید .
در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)