索引的优缺点
优点:
大大加快了查询的速度,快速定位到你要查找的记录。
缺点:
1.索引虽然加快的查询的速度,但是却降低了表的更新速度,因为每当数据库更新数据的时候,数据库和索引文件都要发生变动。索引其实也是一张表,内部存放的是索引记录对应的数据的指针。
2.会占用额外的存储空间。如果数据库特别大建立索引,索引文件会特别臃肿。
索引的种类
- 普通索引 (INDEX)
- 唯一索引(UNIQUE,所有的索引都不能重复,但可以为空)
- 主键索引(primary key,不可以重复,但不能为空)
- 组合索引(最左前缀原则)
- 全文索引 (fulltext index 可以针对值中的某个单词,但效率确实不敢恭维)
索引的创建
//普通索引
alter table table_name add index index_name (column_list) ;
//唯一索引
alter table table_name add unique (column_list) ;
//主键索引
alter table table_name add primary key (column_list) ;
索引的注意事项
- 参与了计算的查询
- 有函数运算
- 存在like查询,只能是”XXX%”的形式
- 列中不能包含NULL,组合索引的列内不能含有NULL
- 包含正则表达式
- 存在字符串与数字比较
- 存在or,必须or的两边字段都使用索引
- 不要使用NOT IN、<>、!=,但是可以使用但<,<=,=,>,>=,BETWEEN,IN