- 普通索引:用于提升查询速度
- 唯一索引:用于提升查询速度,还要求字段值不得重复
- 主键索引:唯一性且不为空的索引
- 全文索引:用于大量文本搜索中建立的索引
虽然索引有好处,但是凡是都有俩面性,提高效率和速度的同时却增加了某些负担:
- 索引需要更多的磁盘空间,索引越多,占用越多。MySIAM引擎是把数据放一个文件,索引放一个文件,而InnoDB是把俩个放一个文件;
- 索引在提升查询速度的同事,降低了插入,更新和删除的操作速度,因为他们多了一项工作,就是在增删改的过程中更新索引。索引越多,速度越慢;
- 通过EXPLAIN语句来查看索引状态 explain select * from 表名 where 字段名='XX';
- 查看表所有索引情况 show index from 表名;
- 全文索引 select * from 表名 where match(建立索引的字段) against('里面的字符');