SQL索引
1.什么是索引?
所谓的索引它是数据库一个特殊对象,用来加快数据的搜索速度,节省搜索时间。
2.索引的类型
Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE。
MySQL默认的索引类型是BTREE。
3.索引种类
普通索引:仅加速查询
唯一索引:加速查询 + 列值唯一(可以有null)
主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个
组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并
4.创建索引的三种方式
1.直接创建索引
CREATE INDEX index_name ON table_name(col_name)
2.通过修改表结构创建索引
ALTER TABLE table_name ADD INDEX index_name(col_name);
3.创建表示直接创建索引
CRETE TABLE table_name (ID INT NOT NULL, col_name INT NOT NULL varchar(64) ,INDEX index_name (col_name));
4.删除索引
--直接删除索引DROP INDEX index_name ON table_name;--修改表结构删除索引ALTER TABLE table_name DROP INDEX index_name;
5.查看其它
- 查看表结构
desc table_name;
- 查看生成表的SQL
show create table table_name;
- 查看索引
show index from table_name;
- 查看执行时间
set profiling = 1;
SQL...
show profiles;
5.索引的缺点
索引是占用空间的。
索引会影响update,insert,delete的速度。
6.在什么地方使用
基本上是在查询条件上创建索引。
注意:在查询条件上不要计算处理,is noll不会走,is not null会走。or也会导致索引失效,除非or关联的字段都加上索引。以like%开头的也会失效。