ایندکس (Index) در SQL ساختاری است که برای افزایش سرعت جستجو و بازیابی داده‌ها از جداول پایگاه داده استفاده می‌شود. آنها با ذخیره‌سازی مرتب و سازمان‌یافته مقادیر ستون‌های خاص، امکان دسترسی سریع‌تر به ردیف‌ها را فراهم می‌کند، مشابه فهرست یک کتاب.

مزایا:

کاهش زمان اجرای کوئری‌ها، بهبود عملکرد در عملیات SELECT، JOIN و WHERE.

معایب:

افزایش فضای ذخیره‌سازی و کند شدن عملیات درج، به‌روزرسانی و حذف (INSERT, UPDATE, DELETE) به دلیل نیاز به به‌روزرسانی ایندکس.

انواع:

Clustered: ترتیب فیزیکی داده‌ها در جدول را تعیین می‌کند (هر جدول حداکثر یک نوع کلاسترد می‌تواند داشته باشد).
Non-Clustered: ساختاری جداگانه برای اشاره به داده‌ها ایجاد می‌کند (می‌تواند چندین ایندکس غیرکلاسترد داشته باشد).

نحوه ایجاد:

با دستور CREATE INDEX، یک Index در Sql Server ایجاد می شود.

CREATE INDEX idx_column ON table_name(column_name);

مثال:
اگر جدولی با ستون Name داشته باشیم و کوئری‌های زیادی روی آن جستجو کنند، ایجاد ایندکس روی Name باعث سریع‌تر شدن جستجو می‌شود.

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