MySQL中索引的分类和基本操作

索引的作用:是用于快速定位实际数据位置的一种机制。

索引在mysql中,是独立于数据的一种特殊的数据结构。

一、索引的分类

普通索引:利用特定的关键字,标识数据记录的位置(磁盘上的位置,盘号,柱面,扇面,磁道)。
唯一索引:限制索引的关键字不能重复的索引。
主键索引:限制索引的关键字不能重复,并且不能为NULL。(不能为NULL的唯一索引)。一个表中只允许有一个主索引。
全文索引:索引的关键字,不是某个字段的值,而是字段值中有意义的词来作为关键字建立索引。
复合索引:如果一个索引(以上四种任何都可以),是依赖于多个字段创建的化,称之为复合索引。

一个myisam表的对应的三个文件:表结构文件.frm、数据文件.myd、索引文件.myi

添加一个普通索引后,索引文件会变大

二、索引的创建

第一种方式:在创建表时,一块创建索引。

第二种方式:建完表后,以alter方式建立索引。

创建索引的注意事项:

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

select * from emp where empno = 1

(2)唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件。比如:is_best is_new is_hot is_sale is_delete

select * from emp where sex = ''

(3)更新非常频繁的字段不适合创建索引,比如登录的状态。

select * from emp where logincount = 1

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

三、索引的删除

删除主键索引:alter table tablename drop primary key

在删除主键索引时,要注意是否有auto_increment属性,如果有,则先要删除该属性,才能删除主键索引。

删除其他索引:alter table tablename drop index 索引的名字

注意:如果没有指定索引的名字则是使用该字段名称作为索引的名字的。

四、索引的查看

show indexes from table_name;

show index from table_name;

show create table table_name;

show keys from table_name;

desc table_name;

转载于:https://www.cnblogs.com/chenjiacheng/p/6522549.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值