🔸 فرض کن یک جدول به نام users داری که یک میلیون رکورد کاربر توش ذخیره شده. وقتی میخوای کاربر با ایمیل خاصی رو پیدا کنی، دیتابیس مجبور میشه کل جدول رو سطر به سطر نگاه کنه (به این میگن Full Table Scan). حالا اگر روی ستون email یک Index بسازیم، دیتابیس مثل فهرست یک کتاب عمل میکنه و در کسری از ثانیه رکورد رو پیدا میکنه.
🔸مثال SQL:
-- وضعیت بدون ایندکس: جستجوی خط به خط کل جدول (کند در حجم بالا)
SELECT * FROM users WHERE email = 'amir@example.com';
-- راهحل: ساخت ایندکس روی ستون جستجو
CREATE INDEX idx_user_email ON users(email);
-- حالا کوئری بالا با سرعت فوقالعاده بالا و با الگوریتم B-Tree اجرا میشه!
🔸 نکته کلیدی: ایندکسها سرعت SELECT را فوقالعاده زیاد میکنند، اما عملیاتهای INSERT و UPDATE را کمی کندتر میکنند؛ پس روی هر ستونی نباید ایندکس ساخت.
🆔 @rezadolati01