1. Clustered Index (ایندکس کلاستر)
ایندکس کلاستر دادههای جدول را بر اساس کلید ایندکس مرتب و ذخیره میکند. هر جدول تنها یک ایندکس کلاستر میتواند داشته باشد، زیرا نحوهٔ ذخیرهسازی فیزیکی دادهها را تعیین میکند.
2. Non-Clustered Index (ایندکس غیرکلاستر)
ایندکس غیرکلاستر ساختاری جدا از جدول اصلی ایجاد میکند و شامل اشارهگرهایی به ردیفهای جدول میشود. شما میتوانید چندین ایندکس غیرکلاستر روی یک جدول داشته باشید.
3. Unique Index (ایندکس یکتا)
ایندکس یکتا اطمینان حاصل میکند که تمام مقادیر در ستون یا ستونهای ایندکسشده یکتا باشند. این ایندکس میتواند کلاستر یا غیرکلاستر باشد.
4. Filtered Index (ایندکس فیلتر شده)
ایندکس فیلتر شده، یک ایندکس غیرکلاستر است که فقط شامل ردیفهایی میشود که یک شرط خاص را برآورده میکنند. این نوع ایندکس برای جستجوی زیرمجموعهای خاص از دادهها مفید است.
5. Covering Index (ایندکس کاورینگ)
ایندکس کاورینگ شامل تمام ستونهای مورد نیاز برای اجرای یک پرسوجو است، بنابراین SQL Server میتواند نتیجه را مستقیماً از ایندکس دریافت کند و نیازی به دسترسی به جدول اصلی ندارد. این کار از طریق اضافه کردن ستونها به قسمت INCLUDE
انجام میشود.
6. Full-Text Index (ایندکس فولتکست)
ایندکس فولتکست برای جستجوهای پیچیده در دادههای متنی استفاده میشود، مانند یافتن کلمات یا عبارات خاص در ستونهای متنی بزرگ. این ایندکس برای جستجو در حجم زیادی از متن بهینه شده است.
7. XML Index (ایندکس XML)
ایندکس XML برای ایندکسبندی نوع داده XML در SQL Server استفاده میشود تا عملکرد پرسوجوهایی که روی ستونهای XML انجام میشود بهبود یابد.
8. Spatial Index (ایندکس مکانی)
ایندکس مکانی برای نوع دادههای مکانی، مانند geography
یا geometry
، طراحی شده است و برای دادههای جغرافیایی و پرسوجوهای مکانی کاربرد دارد.
هر نوع ایندکس برای کاربردهای خاصی بهینه شده است و بهبود عملکرد پرسوجوها را ممکن میسازد. استفاده از مثالها و توضیحاتی برای هر نوع ایندکس به فهم بهتر و کارآمدتر کردن جستجوها کمک خواهد کرد.