آموزش هاپایگاه داده

آموزش ایندکس گذاری در SQL

آموزش ایندکس گذاری در SQL : در این قسمت از آموزش های وب سایت پرعلم تصمیم گرفتیم تا کاربرد Index گذاری در SQL و همچنین نحوه Index گذاری در SQL را به شما کاربران عزیز آموزش دهیم.

پس اگر نمی‌دانید ایندکس گذاری در SQL چیست؟ و یا چه کاربردی دارد و همچنین اگر نحوه ایندکس گذاری در SQL را نمی‌دانید، با ما در این مقاله همراه باشید.

مطالبی که در این آموزش فرامی‌گیرید:

  • ایندکس در SQL چیست؟ مفید است یا خیر؟ چه تعداد ایندکس روی جدول بگذاریم؟
  • کاربرد ایندکس در SQL چیست؟
  • چرا باید روی جداول SQL ایندکس گذاری کنیم؟
  • مزایا و معایب ایندکس گذاری در SQL چیست؟
  • چند نوع ایندکس در SQL داریم؟
  • نحوه ایجاد ایندکس در SQL
  • دسترسی به INDEX ها و حذف آن ها

در ادامه با پرعلم همراه باشید تا به بررسی موارد بالا بپردازیم…

ما این موضوع را در قالب یک مثال پیش می‌بریم، پس بهتر است شما نیز یک دیتابیس جدید بسازید که حاوی یک جدول برای کاربران به نام tbl_User باشد.

آموزش ایندکس گذاری در SQL

ایندکس در SQL

به طور کلی ایندکس ها لیستی از data هستند که بر اساس یک موضوع خاص که شما آن را تعیین کرده اید مرتب شده اند. اگر متوجه این جمله نشدید نگران نباشید و در ادامه با ما همراه باشید تا در غالب مثال بیشتر توضیح دهیم…

کاربرد ایندکس در SQL

مثال : جدول کاربران دارای ستونهای زیر است:

  1. ID : برای کلید اصلی یا Primary Key
  2. Name : نام کاربران
  3. LastName : نلم خانوادگی کاربران
  4. NationalCode : کد ملی کاربران
  5. Mobile : شماره موبایل کاربران
  6. Birthday : تاریخ تولد کاربران

حال به نظر شما روی کدام فیلد ها بیشتر ممکن است جستوجو صورت گیرد؟ بله درسته روی فیلد های Name و Last Name جستوجوی بیشتری صورت می‌گیرد. پس ما روی این 2 فیلد ایندکس قرار می‌دهیم تا فرآیند جستوجو را سرعت ببخشیم.

مزایا و معایب ایندکس گذاری

پس متوجه شدیم که ایندکس گذاری سبب بهبود سرعت جستوجو می‌شود.

اما همانقدر که سرعت جستوجو را بهبود می‌بخشد، سرعت Update کردن جدول را کاهش می‌دهد. چرا؟ چون ایندکس ها خودشان نیاز به Update دارند.

پس نتیجه می‌گیریم که ایندکس گذاری روی جداول SQL هم باید باشند و هم باید به تعداد کافی باشند.

نتیجه گیری نهایی :

نبود ایندکس در SQL باعث کند شدن فرآیند جستوجو شده و زیادی آن باعث کند شدن فرآیند Update می‌شود.

مطلب پیشنهادی : آموزش بک آپ گیری خودکار SQL Server

چرا باید روی جداول SQL ایندکس گذاری کنیم؟

همانطور که در بخش قبل گفتیم برای بهبود سرعت جستوجو در SQL روی جداول ایندکس گذاری می‌کنیم.

نکته : دقت کنید که تعداد ایندکس ها به مقدار کافی باشد و زیاد نشود، اگر تعداد آنها بیش از حد باشد، فراآیند Update کند می‌شود.

در مثال بالا می‌دانیم که امکان جستوجو روی فیلد نام  و فیلد نام خانوادگی زیاد است و امکان جستوجو بر اساس کد ملی خیلی کم است. پس نیازی به ایندکس گذاری روی فیلد کد ملی نیست.

چند نوع ایندکس در SQL داریم؟

ایندکس ها انواع مختلفی دارند که ما در این قسمت 2 نوع از آنها را بررسی می‌کنیم:

  1. Clustered Index
  2. Non Clustered Index

که در ادامه هر یک را بررسی خواهیم کرد. با ما همراه باشید…

مطلب پیشنهادی : چگونه روی فیلدهای جدول SQL محدودیت قرار دهیم؟

آموزش ایندکس گذاری در SQL

1 – بررسی Clustered Index :

این نوع ایندکس مشخص می‌کند که اطلاعات یک جدول به صورت فیزیکی به چه صورت در HARD ذخیره شود. در واقع به زبان ساده ما با Clustered Index داریم به SQL می‌گوییم که اطلاعات در فایل دیتابیس که روی هارد دیسک هست به چه ترتیبی ذخیره شوند.

پس ما برای یک جدول نمی‌توانیم بیش از یک Clustered Index داشته باشیم.

هنگامی که یک کلید اصلی یا Primary Key برای یک جدول تعیین می‌کنیم، SQL به طور خودکار برای آن جدول یک Clustered Index ایجاد می‌کند.

2 – بررسی Non Clustered Index :

Non Clustered Index ها همان ایندکس هایی است که بالاتر نیز گفتیم روی یک فیلد مثل نام قرار می‌دهیم.

به عنوان مثال در یک دیکشنری در انتهای کتاب برخی لغات پرکاربرد و صفحه ی آن را نوشته است.

Unit Index : 

نوعی Non Clustered Index است که تضمین می‌کند در یک فیلد هیچ 2 رکورد تکراری وجود نداشته باشد.

آموزش ایندکس گذاری در SQL

نحوه ساخت ایندکس در SQL

1 – ابتدا جداول را می‌سازیم.

2 – حال روی علامت + کنار جدول کلیک می‌کنیم :

3 – در زیر آیتم هایی که باز می‌شود روی گزینه ی Indexes راست کلیک کنید:

4 – با نگه داشتن ماوس روی New Index منوی دیگری برای شما باز می‌شود.

5 – در این منو، در برخی ورژن های SQL Server Management Studio ممکن است Clustered Index غیر فعال باشد. گرچه اگر فعال هم باشد اگر روی جدولتان کلید اصلی داشته باشید نمی‌توانید Clustered Index اضافه کنید زیرا هر جدول فقط یک Clustered Index می‌تواند داشته باشد. و وقتی برای یک جدول کلید اصلی انتخاب کنید SQL آن را Clustered Index قرار می‌دهد.

دانلود نرم افزار SQL Server Management Studio

6 – روی Non-Clustered Index کلیک کنید.

7 – پنجره ی زیر را مشاهده می‌کنید:

8 – در این پنجره روی دکمه ی Add که در تصویر دور آن خط کشیدیم کلیک کنید.

9 – پنجره زیر را مشاهده می‌کنید :

10 – در این پنجره فیلدی که می‌خواهید روی آن ایندکس قرار دهید را انتخاب کنید و سپس روی OK کلیک کنید.

11 – حال فیلدی که انتخاب کردید را در پنجره اول مشاهده می‌کنید :

12 – اگر در این پنجره تیک گزینه ی Unique را بزنید، یعنی می‌خواهید 2 رکورد تکراری در این فیلد وجود نداشته باشد :

اگر نیاز به ایندکس گذاری روی فیلد های دیگر را هم دارید، همین کار را برای آن تکرار کنید.

دقت کنید که تعداد ایندکس ها زیاد و یا کم نباشد و به اندازه کافی باشد.

دسترسی و حذف ایندکس ها در SQL

1 – برای این کار ابتدا روی علامت + کنار جدول کلیک کنید :

2 – سپس روی علامت + کنار Indexes کلیک کنید :

3 – سپس مشاهده می‌کنید که یک Clustered Index به صورت پیش فرض وجود دارد که برای کلید اصلی جدول شماست.

4 – با راست کلیک روی این Non-Cluster Index ها که ساختید، می‌توانید آنها را ویرایش و یا حذف نمایید.


امیدوارم که این مقاله از پرعلم برای شما عزیزان مفید بوده باشد.

این مطلب را با دوستانتان به اشتراک بگذارید.

برای آگاهی از جدید ترین مطالب ما، در کانال تلگرام و یا صفحه اینستاگرام ما عضو شوید.

صفحه اینستاگرام پرعلم : instagram.com/Porelm_com

کانال تلگرام پرعلم : t.me/porelm

, , , , , , , , , , , , , , , , , , , , , , , , , ,
نوشتهٔ پیشین
آیا کسب و کار من به وب سایت نیاز دارد؟
نوشتهٔ بعدی
چگونه در ویندوز 10 رمز بگذاریم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.
برای ادامه، شما باید با قوانین موافقت کنید

*

code

فهرست