zzlig 发表于 2012-3-1 16:57:53

请教下in + order by + limit 优化

SELECT * FROM `goods` WHERE ( `cat_id` IN ('1','2','16','123',) ) AND ( `status` = '1' ) ORDER BY hots desc,addtime desc LIMIT 0,21
高手们,这语句如果优化好?

kider 发表于 2012-3-1 17:57:24

给点建议:
1、cat_id要有索引,或catid 和 status 有联合索引,具体还要看status列的数据分布情况。
2、尽量避免用in, 用explain看看执行计划,是否能用上索引,如果不能就需要替换此种写法,需另考虑。
3、尽量不要用多列排序。
多用用explain....

zzlig 发表于 2012-3-1 19:34:12

谢谢你的意见~

croso 发表于 2012-3-5 17:54:32

本帖最后由 croso 于 2012-3-5 18:06 编辑

路过。。。
页: [1]
查看完整版本: 请教下in + order by + limit 优化