PDA

View Full Version : کاربرد ایندکس در دیتابیس



salamesalehpour
جمعه 09 دی 1390, 17:20 عصر
سلام به همه دوستان

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

pashna
جمعه 09 دی 1390, 21:48 عصر
سلام، ایندکس دقیقا مثل فهرست کتاب میمونه،فرض کن کتابی‌ کاری که فهرست نداره، در این صورت برای پیدا کردن موضوع باید تمام کتاب رو بگردی همینطور در دیتابیس فرض کن که یک جدولی‌ داری که ایندکس نداره و می‌خوای دنبال چیزی بگردی، کاری که دیتابیس می‌کنه اینکه که میره کل فیلد‌های موجود در جدول رو میخونه تا به فیلد مورد نظر برسه، این کار هزینهٔ زیادی برای دیتابیس داره (منظور از هزینه زمان و پردازشگر است)، اگر شما یک ایندکس رویه جدولتون داشته باشید، دیتابیس ازش استفاده می‌کنه و به سرعت فیلد مورد نظر رو پیدا می‌کنه.
79911
79912

این فقط یک مثال ساده است، شما میتونید بیشتر در مورد تحقیق کنید.
http://www.sqlteam.com/article/sql-server-indexes-the-basics

baktash.n81@gmail.com
شنبه 10 دی 1390, 08:01 صبح
سلام

نمی دونم چیزی راجع به الگوریتم های جستجو می دونی یا نه ... همونهایی که رانشجوهای نرم افزار ترم 1 یا 2 می خونن ... سریعترین الگریتم جستجو روی داده هایی که مرتب باشند نوشته شده ...

خوب یک جدول در SQL هم یک سری داده است که SQL به طور فیزیکی اونارو بر اساس کلید اصلی جدول مرتب نگه می داره ... پس اگه بخوایم دنبال یک کلید اصلی بگردیم خیلی سریع اونو پیدا می کنیم ... اما ممکنه جدول ما فیلدهای دیگه ای هم داشته باشه و ما بخوایم با فیلدی مثل تاریخ جستجو کنیم ... (یا هر فیلدی که کلیدد نیست) اونوقت چون اطلاعات بر اساس او مرتب نیست SQL هم خیلی دیرتر اونو پیدا می کنه ... این مشکل باعث شد که Index ها بوجود بیان ... در حالت خیلی ساده و ابتدایی تو اینجوری نگاه کن که Index یه لیسته که بر اساس ستون هایی که ما مشخص کردیم اطلاعات مرتب نگه داری می شه ... وقتی شما یه دستور Select می زنی بر اساس اینکه تو شرط Where از چه فیلدهایی استفاده شده SQL جدول رو با Index مربوطه Join می کنه بعد عمل جستجو رو انجام می ده و نتیجه رو بر می گردونه ...