mysql基础知识之索引

索引综述

MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。

索引其实和字典的目录很相似,字典可以根据拼音和部首偏旁快速查询到指定的字。

对于MySQL数据库来说,索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址,在数据十分庞大的时候,索引可以大大加快查询的速度,这是因为使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据。

索引的分类

索引的种类不止一种,它包括:主键、唯一索引、普通索引、全文索引、组合索引

①、主键:根据主键建立索引,不允许重复,不允许空值,一个表可以没有主键,但最多只能有一个主键,主键可以为空字符串

先创建一个表:indextest2
在这里插入图片描述
创建主键:

alter table indextest2 add primary key (name);

查看创建的主键:
在这里插入图片描述
向表里面插入数据,查看查询的时候是否使用了主键:
在这里插入图片描述
可以看到确实是用了主键。

不允许重复的解释如下图:
在这里插入图片描述

②、唯一索引:用来建立索引的列的值必须是唯一的,允许空值

首先删除indextest2表的主键:alter table indextest2 drop primary key;
然后创建唯一索引:

alter table indextest2 add unique (name);

在这里插入图片描述
通过上图可以得知唯一索引创建成功。

③、普通索引:用表中的普通列构建的索引,没有任何限制

在这里插入图片描述

④、全文索引:用大文本对象的列构建的索引

创建全文索引:

alter table indextest2 add fulltext index (name);

在这里插入图片描述

⑤、组合索引:用多个列组合构建的索引,这多个列中的值不允许有空值
alter table indextest2 add idnex (name,age,score);

组合索引遵循最左原则,先看下图:
在这里插入图片描述
查询操作并未使用索引,做如下解释:
所谓最左原则:是把最常用作为检索或排序的列放在最左,依次递减,组合索引相当于建立了col1,col1col2,col1col2col3三个索引,而col2或者col3是不能使用索引的。

在使用组合索引的时候可能因为列名长度过长而导致索引的key太大,导致效率降低,在允许的情况下,可以只取col1和col2的前几个字符作为索引

ALTER TABLE ‘table_name’ ADD INDEX index_name(col1(4),col2(3));
表示使用col1的前4个字符和col2的前3个字符作为索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值