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 حالت مختلف داره.... ؟؟؟؟؟؟؟؟؟؟؟)
با تشکر
جدولی به اسم 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 حالت مختلف داره.... ؟؟؟؟؟؟؟؟؟؟؟)
با تشکر