索引类型:
1.普通索引
最常使用的索引,
create index index_name on table_name(col_name(length))
2.唯一索引
和普通索引类似。索引列值唯一,和主键不同,允许有空值
create unique index index_name on table_name(col_name(length))
3.全文索引
仅适用于MyISAM的存储引擎存储的表,用于解决like查询低效问题,但只是"xxx%"这样的like查询。
create fulltext index index_name on table_name(col_name(length))
4.组合索引
sql语句中经常会用到比较多的查询条件,这就需要组合索引,例如select * from tb_stu where age=xxx and college=xxx; 如果将age和college创建组合索引(alter table tb_stu add index index_age_college(age,college)),实际相当于创建了age,age和college的组合索引这两种索引
关于优化
索引大大提高了查询速度,但是当进行增删改操作时,也会因为维护索引而降低他们的速度,而且在一些大表中建立不必要的索引也会使索引文件迅速膨胀
1.索引不包含null值列
你的索引列中有一行是null的话,查询将不会查找到他,建议建表时该列会有默认值
2.使用段索引
如果你的一个字段长度很大,建议使用短索引,即在上述创建语句中使length有值,例如一个长255的varcher,索引长度定在10-20之间就可以了,短索引可以加快查询速度和对索引文件的维护速度
3.使用全文索引优化like查询
"xxx%"这样的like查询语句可以建立全文索引
4.不要再索引列上进行运算操作
这样会导致全表扫描,索引将不会起到作用。
5.千万千万不要在重复数据多的字段建立索引,实在不行就分表