首页 新闻 会员 周边 捐助

order by 怎么优化

0
[待解决问题]

SELECT
t.sample_sn,t.state,t.member_id,t.express_state,t.name,t.sex,t.arived_time,t.out_time,
t.bind_time,t.detection_time,t.report_sand_time,
tc.company_name,
tps.title,
tm.mobile,
tcs.company_suite_name,
tpsl.content,
tce.remark as out_remark
FROM
t_sample t
LEFT JOIN t_company tc ON t.company_id = tc.company_id
LEFT JOIN t_project_suite tps ON t.project_suite_id = tps.project_suite_id
LEFT JOIN t_member tm ON tm.member_id = t.member_id
left join t_company_suite tcs on t.company_suite_id=tcs.id
left join t_project_suite_list tpsl on t.p_s_list_code=tpsl.code
left join t_company_express tce on tce.express_id=t.out_id
order by t.sample_id desc

 limit 0,10

 

全部数据16万条   查询效率太低   一分半

漠---的主页 漠--- | 菜鸟二级 | 园豆:204
提问于:2017-10-09 18:26
< >
分享
所有回答(5)
1

t.sample_id 加索引并且把外键字段也加索引

吴瑞祥 | 园豆:29449 (高人七级) | 2017-10-09 18:30

sample_id是主键  能建立索引不

支持(0) 反对(0) 漠--- | 园豆:204 (菜鸟二级) | 2017-10-10 17:53

@漠---: 主键就是索引了.那就给那些外键字段加索引

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2017-10-10 18:08
0

16万条你全部查出来的话,显示都是问题了,不用谈什么效率了。谁来也没办法,堆硬件吧。

爱编程的大叔 | 园豆:30844 (高人七级) | 2017-10-09 23:03

y用的pageHelper 插件 自动分页     查询很慢  最后发现是order by 影响的  order by 需要全局扫描的原因吧

支持(0) 反对(0) 漠--- | 园豆:204 (菜鸟二级) | 2017-10-10 17:44
0

换种方式码代码,或者直接用sql查询

Leap李 | 园豆:246 (菜鸟二级) | 2017-10-10 15:25
0

居然敢这么写……

兄弟,先limit,再join!

就是:先取出需要的那10条,再对这10条进行join,速度就极快了。而你的代码是:把16万条进行join,再去从join后的结果取出10条,这。。。。。。。

参考:

select a.xx,b.xx,c.xx from (select * from 表 limit 0,10) a left join b on... left join c on...

仔细看,你一定看得懂。

还有一点,join的那些字段最好加上合适的索引,否则也是比较慢的。

陈子 | 园豆:241 (菜鸟二级) | 2017-10-11 14:46

用的pageHelpe分页插件自动limit

支持(0) 反对(0) 漠--- | 园豆:204 (菜鸟二级) | 2017-10-26 17:29
0

remark里边是不是数据量很大。。。

月球第一步 | 园豆:202 (菜鸟二级) | 2017-10-23 19:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册