MYSQL的索引

索引的特点

优点

·大大加快数据的查询速度

·使用分组和排序进行数据查询时,可以显著减少查询时分组和排序的时间

·创建唯一索引,能够保证数据库表中每一行数据的唯一性

·在实现数据的参考完整性方面,可以加速表和表之间的连接

缺点

·创建索引和维护索引需要消耗时间,并且随着数据量的增加,时间也会增加

·索引需要占据磁盘空间

·对数据表中的数据进行增加,修改,删除时,索引也要动态的维护,降低了维护的速度

索引创建原则

·更新频繁的列不应设置索引

·数据量小的表不要使用索引

·重复数据多的字段不应设为索引

·首先应该考虑对where 和 order by涉及的列上建立索引

索引的查看

查看数据库所有索引

select  *  from mysql.`innodb_index_stats` a  where  a.database_name` =’数据库名’;

查看表中所有索引

select  *  from mysql.`innodb_index_stats` a  where  a.database_name` =’数据库名’ and a.table_name like ‘%表名%’;

查看表中所有索引

Show index from 表名;

单列索引

普通索引

MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一点

1.创建表时直接创建
create table student(
eid int primary key,
ename varchar(20)
index index_name(eid)
);
2.直接创建
create index index_ename on student(ename);
3.通过修改表结构的形式添加索引
alter table student add index index_eid(eid);

唯一索引(unique)

唯一索引与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一

1.创建表时直接创建
create table student(
eid int primary key,
ename varchar(20)
unique index_name(eid)
);
2.直接创建
create unique index_ename on student(ename);
3.通过修改表结构的形式添加索引
alter table student add unique index_eid(eid);

主键索引

每张表一般都会有自己的主键,当我们在创建表时,MySQL会自动在主键列上建立一个索引这就是主键索引。主键是具有唯一性并且不允许为NULL,所以他是一种特殊的唯一索引

组合索引

是在按一定顺序的多个字段上创建的索引

create unique index index_name eid on student(ename,eid);

其中unique可替换 

全文索引

--1.创建表时直接创建
create table t(
id int primary key auto increment;
fulltext(id)
);
--2.直接创建
create fulltext index index_id on t(id);
--3.通过修改表结构的形式添加索引
alter table t add fulltext index_id(id);

空间索引(了解)

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值