MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。
打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。
拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。
索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。
****亲测********建立组合索引后,时间可以用2100ms缩短为200ms,提升了10倍的效率***********************
如表order表中有50000条记录,如果不使用索引,那么select就相当于遍历了50000条去查询,如果使用索引,就相当于Hash值的对照,速度不是一个等级的。
查询速度为:**组合索引,索引的顺序,一定按照先后顺序来,会提高效率**
join > where > order by,group by >select ,
其他可以建立索引的地方为:
(between, >,< ,>=,< =)和order by
、group by发生的列,可考虑建立群集索引;
如组合索引:
create index judgeIndex on 表A(fPunishRuleRecordFlag,fDealState,fSureAttend,fReleaseRuleFlag,fUsePsnID); //顺序也很重要
其他,普通索引:
CREATE INDEX indexName ON mytable(username(length));