mysql sql利用索引

select id,title from user limit 1000,10;     0.02秒
select id,title from user limit 88888,10;      8-9秒
select id,title from user order by id limit 88888,10;        0.04秒就OK。或者
select id,title from user where id>=(select id from user order by id limit 88888,1) limit 10;
这就是用了id索引的结果。

select id from user where type=1 order by id limit 88888,10;     8-9秒!
type 有索引了?
答案就是:复合索引! 开始的select id from user order by id limit 88888,10; 这么快就是因为走了索引,可是如果加了where 就不走索引了。加了search(type,id) 这样的索引。然后测试

select id ,title from user where type=1 limit 88888,10;     0.04秒!

综上:如果对于有where 条件,又想走索引用limit的,必须设计一个索引,将where 放第一位,limit用到的主键放第2位,而且只能select 主键!
select * from user where id in (9000,12,50,7000);  0秒,但in的个数不能太多

 

写好sql后最好explain sql 看一下执行效率,有没有利用索引等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值