日期:2014-05-16  浏览次数:20728 次

数据库索引的使用

???? 如果一条sql执行的时间是22秒的话,使用索引后只用0.2秒,大大提升了sql的执行效率

???? 如何创建索引呢,最简单的就是根据sql的查询条件来创建,例如:

????

select * from user where password=? and name=?

?

这是我们就可以根据password和name来创建索引

???

CREATE INDEX idx_suoyin ON user(password,name); ??

很简单吧,不过还要注意几种情况的查询不会调用索引:

1、在使用like时

条件为‘%tt’ 和‘%tt%’时不会调用,只有前面的条件固定时才会调用‘tt%’

?

2、在使用运算函数是不会调用:

比如:“<”,"<>",is null 等条件下和运算符下不会调用

?

3、两个字段以上的索引就是复合索引,复合索引在第一个字段没有调用的情况下不会使用索引,比如:

CREATE INDEX idx_suoyin ON user(password,name); 

select * from user where name=?//这样就不会使用索引,需要重新建立新的索引

?