PDA

View Full Version : ORDER BY IN MySQL



trasilver
پنج شنبه 04 اردیبهشت 1393, 04:53 صبح
سلام خدمت عزیزان.

دوستان یک سوال داشتم. خوب همون طور که می دونید در ایندکس گذاری، میایم و فیلد هایی که توی کوئری های زیادی مورد جستجو قرار می گیرند رو ایندکس می کنیم.

حالا یک سوال داشتم! آیا توی همون کوئری اگه از ORDER BY هم استفاده کنیم فیلدی که قراره ترتیب داده بشه هم باید ایندکس بشه؟

مثلا


SELECT * FROM `users` WHERE `name` = 'mohammad'

خوب ما اینجا میگیم فیلد name ایندکس میشه.

حالا توی کوئری زیر:


SELECT * FROM `users` WHERE `name` = 'mohammad' ORDER BY `old` ASC

آیا اینجا نیاز هست که فیلد old هم ایندکس بشه؟

ممنون میشم راهنمایی بفرمایید.

saeedvir
پنج شنبه 04 اردیبهشت 1393, 09:43 صبح
ordder by برای مرتب سازی نتیجه هست و نیازی به ایندکس گذاری نیست.

البته اگه تعداد رکورد ها نزدیدک به میلیون هست ایندکس گذاری میتونه موجب افزایش سرعت بشه.

لینک زیر هم میتونه کمک کنه :
http://www.howtoforge.com/when-to-use-indexes-in-mysql-databases

trasilver
پنج شنبه 04 اردیبهشت 1393, 10:00 صبح
ordder by برای مرتب سازی نتیجه هست و نیازی به ایندکس گذاری نیست.

البته اگه تعداد رکورد ها نزدیدک به میلیون هست ایندکس گذاری میتونه موجب افزایش سرعت بشه.

لینک زیر هم میتونه کمک کنه :
http://www.howtoforge.com/when-to-use-indexes-in-mysql-databases
می تونه به 1 میلیون هم برسه! دقیق نمیشه گفت که نمی رسه!
ممنون بابت لینک ولی اینجا هم name رو مورد سرچ قرار داده بود و هم name رو مورد مرتب سازی یا همون order by قرار داده بود! اما چون اینجا فیلد order by توی کوئری ما متفاوت هست خواستم بدونم که 100% نیاز هست یا بود و نبودش فرقی نداره؟! چون همون طور که می دونید ایندکس سرعت نوشتن رو کم می کنه. پس اگه نیازی نیست الکی نذاریم که سرعت نوشتنمون رو کم کنه :لبخندساده:
بازم ممنون بابت راهنمایی هاتون.