索引
1.基本介绍
1.1.使用索引可以提高运行速度,但是索引本身也会占用空间(用空间换时间)。
2.创建索引是在某一列上创建,支只对创建了索引的列有效。(所以创建一个索引不会解决所有问题。
2.索引的原理
创建索引实际是创建二叉树(或其他数据结构),通过与节点比较大小,来查找结果,减少遍历全表所需的时间。
3.索引的代价
1.磁盘占用、
2.对dml(update、delete、insert)语句的效率影响。但项目中,select语句多。
4.索引的类型
1.主键索引,主键自动的为索引(primary key)
2.唯一索引,UNIQUE(索引所在的列,不能重复)
3.普通索引,INDEX
4.全文索引,FULLTEXT(适用于MySAM),由于自带全文索引效率比较低,一般开发中考虑使用:全文搜索 Solr和ElasticSearch(ES)
5.索引的使用
5.1.建表时创建索引
5.2添加索引
//添加唯一索引
CREATE UNIQUE INDEX id_index ON t25 (id);
查询创建索引结果:
//查询语句:
SHOW INDEX FROM t26;
Non_unigue列为0,表示为唯一索引。
注意:唯一索引所在的列,id在以后是不能重复的,如果希望查询速度快但是id会重复可以采用普通索引。
//添加普通索引
//方式一
CREATE INDEX id_index ON t25 (id);
//方式二
ALTER TABLE t25 ADD INDEX id_index (id);//修改
//添加主键索引
//建表时未创建可以使用ALTER
ALTER TABLE t25 ADD PRIMARY KEY ON (id);
5.3删除索引
SQL语句:
DROP INDEX id_index ON t25;
id_index,为索引名字,可用show查询。
删除主键索引:
ALTER TABLE t25 DROP PRIMARY KEY;
注意修改索引就是先删除再添加
5.4查询索引
方式4,得到的索引信息没有前三种全,推荐前三种
方式4查询结果: