MariaDB社区

标题: 请教下in + order by + limit 优化 [打印本页]

作者: zzlig    时间: 2012-3-1 16:57
标题: 请教下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
给点建议:
1、cat_id要有索引,或catid 和 status 有联合索引,具体还要看status列的数据分布情况。
2、尽量避免用in, 用explain看看执行计划,是否能用上索引,如果不能就需要替换此种写法,需另考虑。
3、尽量不要用多列排序。
多用用explain....
作者: zzlig    时间: 2012-3-1 19:34
谢谢你的意见~
作者: croso    时间: 2012-3-5 17:54
本帖最后由 croso 于 2012-3-5 18:06 编辑

路过。。。





欢迎光临 MariaDB社区 (http://123.56.88.72/) Powered by Discuz! X3.2