ورود

View Full Version : سوال در مورد index گذاری



milad_d993
جمعه 22 آبان 1394, 18:14 عصر
سلام دوستان
جدولی به اسم user دارم که دارای فیلد های نام، نام خانوادگی، شهر (مراکز استان) و 10 فیلد دیگه هست
این جدول دارای 5 میلیون سطر هست
توی یکی از کوئری ها لازم دارم که مثلا کسانی که اسمشان میلاد و ساکن شهر تهران هستند رو واکشی کنم

من فیلد شهر رو index کردم و کوئری زیر حدودا 500 هزار رکورد داره توش


select * from user where city = 21

حالا میخوام روی این نتیجه یه کوئری دیگه بزنم و کسانی که اسمشان میلاد هست رو دریافت کنم


select * from (select * from user where city = 21) where name = 'میلاد'


این رو تست کردم و خطا گرفتم؛ کوئری بالا (در صورت صحیح بودن؛ هست؟؟؟) با کوئری زیر چه فرقی داره از نظر سرعت:


select * from user where city=21 and name = 'میلاد'


میخوام بدونم وقتی بر اساس چند فیلد میخوایم جستجو داشته باشیم آیا خوبه که فیلد کلیدی رو index کنیم و بقیه پارامتر ها index نباشن؟؟؟
(توی این مثال index کردن 5 میلون رکورد که city بین 1 تا 31 دارن راحت تر نیست تا index کردن نام که n حالت مختلف داره.... ؟؟؟؟؟؟؟؟؟؟؟)

با تشکر

sobhdam
پنج شنبه 05 آذر 1394, 18:01 عصر
شما select رو بحای نام جدول قرار دادی و select تو در تو نام جدول رو بر نمیگردونه