索引
1.首先一个问题什么是索引?
依照我学的过得知识,从我的理解上谈谈什么事索引。举个例子来说,一张表里有上千条甚至上万条数据,你需要从中找出一条你想的数据若不在创建索引的条件下,查询时间可能是3~5秒甚至更多时间,而一旦对这张表建立索引,查询时间会提高上千倍,所以我个人理解,索引就是提高对数据库查询效率,与性能。
2.索引的分类?
主键索引、唯一键索引、普通索引、全文索引
* 主键索引(效率最高,不能重复,且不能为null)
创建表时:在某个字段后直接加上primary key(一个表中最多有一个主键索引,或者复合主键)
创建表中:在表的最后加 primary key(某个字段名)
创建表后:使用alter table 表名 add primary key(字段名)
*唯一键索引(不能重复,可以为空)
创建表时:在某个字段后直接加上unique(一个表中可以有多个唯一索引,但唯一键索引所在列的数据不能有重复)
创建表中:在表的最后加 unique(某个字段名)
创建表后:使用alter table 表名 add unique(字段名)
*普通索引
第一种:在标的定以后,指定某列为索引 index(字段名)
第二种:使用alter table 表名 add index(字段名)
第三种:create index 索引名 on 表名(字段名)
*全文索引(解决中子文问题)
创建表中:fulltext(字段名)
3.索引的基本原理?
底层是一个B+树,使用B+树查询效率会特别高,但这也是以更新,插入,删除作为代价的。
4.索引的删除?
第一种:(主键索引删除)alter table 表名 drop primar key
第二种:(其他索引的删除)alter table 表名 drop index 索引名
第三种:drop index 索引名 on 表名