mysql> SELECT * FROM goods
-> JOIN goodsatt ON
-> (goods.goodsid=goodsatt.goodsid)
-> WHERE goodsatt.cid IN(101,200,201,202,203,204,205)
-> LIMIT 110020,10;
给你这个语句提点建议:
1.确保索引:goodsid,cid
2.LIMIT 110020,10;这个地方至少要扫描110020条记录,建议使用覆盖索引查询:
select * from goods join (select goodsid from goods where ci in(...) limit ...) as gd2 using(goodsid) 阿呆 发表于 2013-4-10 09:27 static/image/common/back.gif
加索引后。
limit 10W以上数据时很慢,至少要5S
没注意仍有问题。
问:不加索引时,limit 100000是5秒10秒的速度吗?
投诉速度慢,又要这又要哪,有当老板的潜质!
这不是慢,是要求更快。
join默认是inner join,看你的情况应是right join。
原来的查询语句的子查询方式亦是潜在的right join。
用Right join肯定会快些,但快多少则难说。
要处理大数据库,先打好基本功吧。
页:
1
[2]