继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

索引的基本操作

生哥哥啊
关注TA
已关注
手记 3
粉丝 6
获赞 4

首先,我们要知道什么是索引,索引的类型有哪些。

1. 什么是索引?

索引就是类似书的目录,提高检索数据的效率。

索引是系统按照某个具体的算法(哈希,散列,二叉树),将数据从全部数据里进行提取,维护成一个索引文件,然后系统在进行数据查询的时候,发现如果查询条件刚好满足索引条件,就可以从索引文件中快速的定位的数据所在位置。

就是换句话说,索引就是利用字段的某些属性快速的定位数据(磁盘,柱面,磁道,扇区)


2.mysql中有哪些索引?

主键索引(primary key)(效率最高的索引)

     要求:数据记录里面不能有null,数据内容不能重复,在一张表里面不能有多个主键索引。

唯一索引(unique key):不为空的情况下效率最高(在MySQL中为空一般指的是值为NULL)

     要求:字段数据是唯一的,数据内容里面能为null,在一张表里面,是可以添加多个唯一索引。

普通索引(index)对数据没有要求,文件很大,效率比较低

     要求:使用字段关键字建立的索引,主要是提高查询速度。

全文索引(fulltext),对整个文章内部进行关键字索引(mysql5.6以后InnoDB支持全文索引)

      * 在mysql中全文索引不支持中文。

      英文的全文索引很简单:英文单词默认是用空格分离的

      中文的全文索引很难:中文的词组成很麻烦,需要利用分词工具(sphinx)。


3.添加索引

alter table 表名 add 索引(字段名);

 主键索引:primary key          唯一索引:unique key

 普通索引:key/index             全文索引:fulltext index


4.删除索引


主键索引的删除,在删除主键 索引时,如果有自增长,先修改掉自增长,再删除主键

 在有自增的情况下:  alter table 表名 modify id int;【重新定义磊列类型】                 

                               alter table 表名  drop primary key


普通索引的删除 | 删除唯一索引 | 删除全文索引 :

    alter table 表名  drop  index  索引名字 (如果索引名称没有指定则是索引的字段名称)


5.查看索引

1)show index from 表名\G         \G:将数据竖列展示

 2)show indexes from  表名

3)desc 表名

 4)show create table 表名



6.创建索引的注意事项 (主要是针对where条件进行优化)

(1)较频繁的作为查询条件字段应该创建索引

select * from emp where empno = 1

(2)唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件

select * from emp where sex = '男‘

(3)更新非常频繁的字段不适合创建索引

select * from emp where logincount = 1

(4)不会出现在WHERE子句中字段不该创建索引





打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP