干货~~~~~~~~~~~~~~~~~~~~
很多朋友在链表查询的时候都只是记得了给where参数加索引
往往忽略了链表on关键字的参数,
比如这条SQL
select
b.*,i.from_uid as fromUid
from base_info b
left join invite i on b.id=i.to_uid
where b.name= xxx
order by b.id desc
limit 0, 10
表数据在一万左右的情况,这条SQL的相应时间是5秒
那么问题来了,为什么会有5秒,才一万的数据,太夸张了。
第一眼大家觉得是哪儿得问题
where? 还是order by?
本人测试去掉order by 时间就快了,但是还是需要100多ms,还是不对
后来突然想到会不会是没有加索引,一看invite表, 果然,invite表没有加to_uid参数的索引,加了个普通索引,
再跑一次SQL, 时间5ms
搞定!