select * from shopgoods order by MarketNumber
LIMIT 0,20 ;
-- 0.050 秒
select * from supplier order by BusinessActivities
LIMIT 0,20 ;
-- 0.050 秒
select * from shopgoods force index(MarketNumber)
left join supplier on shopgoods.SupplierId=supplier.Id
order by shopgoods.MarketNumber
LIMIT 0,20 ;
-- 0.098 秒
select * from shopgoods
left join supplier on shopgoods.SupplierId=supplier.Id
order by shopgoods.MarketNumber,supplier.BusinessActivities
LIMIT 0,20 ;
-- 1.439 秒
怎么优化 最后这条? 索引都加了 这个 才不到 1万的数据量
select查询字段不要全部查询出来,用到那个查那个
我试过了 把* 换成ID 就这个一个字段 也是这个速度 没有太大效果
@老-顾 索引不是创建越多越好,经常用到的字段才用索引
@陈彦斌: 这个知道的 没有很多索引, 我想问题可能出在 我这个查询语句只用到了一个索引 但是我用了2个字段去排序 并且还是不同的表的字段,
你看看我新附的 执行计划
建议分别去掉2个排序字段对比一下,看哪个字段的排序开销大
SupplierId加上索引,另外建议小表去join大表.
还是shopgood这个表查得有问题 type 是all 最差的 ref 都没有值。你往shopgood里面放的什么索引
order by 那里,如果不是特别需要的,改成order by一个就可以了。