MySql 两张表分别有字段做排序 效率很慢
时间: 2019-05-18来源:博客园
前景提要
MySql 两张表分别有字段做排序 效率很慢
0 悬赏园豆: 50 [待解决问题] 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万的数据量 老-顾 | 初学一级 | 园豆: 152
提问于:2019-05-18 17:18 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(5) 0 select查询字段不要全部查询出来,用到那个查那个 陈彦斌 | 园豆:202 (菜鸟二级) | 2019-05-18 17:41 我试过了 把* 换成ID 就这个一个字段 也是这个速度 没有太大效果 支持( 0 ) 反对( 0 ) 老-顾 | 园豆:152 (初学一级) | 2019-05-18 17:43 @老-顾 索引不是创建越多越好,经常用到的字段才用索引 支持( 0 ) 反对( 0 ) 陈彦斌 | 园豆:202 (菜鸟二级) | 2019-05-18 17:44 @陈彦斌: 这个知道的 没有很多索引, 我想问题可能出在 我这个查询语句只用到了一个索引 但是我用了2个字段去排序 并且还是不同的表的字段, 支持( 0 ) 反对( 0 ) 老-顾 | 园豆:152 (初学一级) | 2019-05-18 17:46 你看看我新附的 执行计划 支持( 0 ) 反对( 0 ) 老-顾 | 园豆:152 (初学一级) | 2019-05-18 17:48 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 建议分别去掉2个排序字段对比一下,看哪个字段的排序开销大 dudu | 园豆:39005 (高人七级) | 2019-05-18 19:51 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 SupplierId加上索引,另外建议小表去join大表. sky_net | 园豆:10 (初学一级) | 2019-05-20 10:40 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 还是shopgood这个表查得有问题 type 是all 最差的 ref 都没有值。你往shopgood里面放的什么索引 幻xiang | 园豆:197 (初学一级) | 2019-05-23 15:46 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 order by 那里,如果不是特别需要的,改成order by一个就可以了。 gw2010 | 园豆:1399 (小虾三级) | 2019-05-28 14:28 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行