بدون ایندکس، پایگاه داده برای پیدا کردن یک ردیف باید کل جدول را بخواند (full scan). ایندکس ساختاری مرتب (معمولاً B-tree) است که مسیر سریع میدهد.
CREATE INDEX idx_users_email ON users (email);
SELECT * FROM users WHERE email = 'a@b.com';چه زمانی ایندکس بسازیم؟
- ستونهایی که زیاد در WHERE، JOIN یا ORDER BY استفاده میشوند.
- ستونهایی با مقادیر متنوع (انتخابپذیری بالا).
هزینهها
- فضای بیشتر روی دیسک.
- درج و بهروزرسانی کندتر چون ایندکس هم باید بهروز شود.
- ایندکس زیاد بیفایده است؛ با
EXPLAINبررسی کنید که کوئری واقعاً از آن استفاده میکند.




