索引作用:没有索引在查找时会全部扫描(大量IO操作,影响性能),有索引(类似书本目录)更快定位,但增、删、改时会更新索引导致影响效率。
适用情景:数据量大,经常引用的列,不常更新的列(更新列时更新索引影响效率)
给哪些列建立索引:不要在select的栏位设置索引(无意义),在选择的栏位(where、order by…)设置
select id,name,address from people where num>1200 order by id;
这里的name,address就没必要建立索引,因为只是查出来而已,应该在num,id处建立索引,因为这种是选择的依据。
经常一起出现的字段组合在一起,组成组合索引,组合索引的字段顺序与主键一样,也需要把最常用的字段放在前面,把重复率低的字段放在前面。索引无效:
like '%'开头的;
or多条件的一个条件没索引全部无效;
多列索引第一个字段没使用的无效。