暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MYSQL的索引机制

海中的舵手 2021-05-28
656

一、mysql索引简介

主要有主键索引、唯一索引、普通索引和全文索引四类。给字段添加索引可以提高数据的读取速度,提高项目的并发能力和抗压能力。索引优化也是masql的一种优化方式,索引的作用相当于字典的目录一样,根据字典目录定位快速找到需要的内容。

主键索引:

主键是一种唯一性的索引,但它必须指定为PRIMARY KEY
,每个表只能有一个主键。


唯一索引:

索引列的值要保持唯一,值可以为空。


普通索引:

普通索引是基本的索引类型,值可以为空,没有唯一性。


全文索引:

全文索引类型是FULLTEXT全文索引可以在varchar
、char、text
类型的列上创建。可以通过ALTER TABLE
或 CREATE INDE命令创建。对于大规模的数据集,通过ALTER TABLE(或者 CREATE INDEX)命令创建全文索引要比把记录插入带有全文索引的空表更快。


全文索引不支持中文需要借助其他技术处理中


二、查看的所有的索引和删除


 

三、索引的机制

1、为什么添加索引后查询速度会变快?

传统的查询方法,是按照表的顺序遍历的,不论查询几条数据,mysql 需要将表的数据从头到尾遍历一遍,在我们添加完索引之后,mysql 一般通过BTREE
算法
生成一个索引文件
,在查询数据库时,找到索引文件进行遍历
,找到相应的键从而获取数据,可以大幅度提升效率。

 

2、在哪些column上使用索引?

较频繁作为查询条件的字段应该创建索引,唯一性太差的字段不适合创建索引,尽管查询频繁,但是比如性别字段gender,唯一性就太差,更新非常频繁的字段不适合创建索引,创建索引的话,查询时数据误差,不会出现在where子句中的字段不该创建索引。

 

总结如下:

满足肯定在where条经常使用,该字段内容不是唯一的几个值,字段内不会频繁变化。

四、查看索引的使用情况


handler_read_key:这个值越高越好,越高表示通过索引查询到的次数越多。

handler_read_rnd_next:这个值越高,说明通过索引查询到的次数越少。


文章转载自海中的舵手,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论