mysql索引的分类

根据索引的存储方式分类:
1. B-树索引(目前大部分的索引都是采用 B-树索引来存储的,如:InnoDB)
    组件: 
        叶子节点:包含的条目直接指向表里的数据行。叶子节点之间彼此相连,一个叶子节点有一个指向下一个叶子节点的指针。
        分支节点:包含的条目指向索引里其他的分支节点或者叶子节点。
        根节点:一个 B-树索引只有一个根节点,实际上就是位于树的最顶端的分支节点。
    约束:B-树索引必须遵循左边前缀原则
        查询必须从索引的最左边的列开始

2. 哈希索引(MySQL目前仅有 MEMORY 存储引擎和 HEAP 存储引擎支持这类索引, MEMORY 存储引擎可以支持 B- 树索引和 HASH 索引,且将 HASH 当成默认索引)
    原理:根据索引列对应的哈希值的方法获取表的记录行,访问速度快
    缺点:
        MySQL 需要读取表中索引列的值来参与散列计算,散列计算是一个比较耗时的操作。也就是说,相对于 B- 树索引来说,建立哈希索引会耗费更多的时间。
        不能使用 HASH 索引排序
        HASH 索引只支持等值比较,如“=”“IN()”或“<=>”

根据索引的具体用途分类:
1、普通索引:最基本的索引类型,唯一任务是加快对数据的访问速度,没有任何限制。创建普通索引时,通常使用的关键字是 INDEX 或 KEY。
2、唯一索引:表上一个字段或者多个字段的组合建立的索引,这些字段组合起来能够确定唯一,允许存在空值(只允许存在一条空值).
    创建唯一性索引的目的往往不是为了提高访问速度,而是为了避免数据出现重复。
3、主键索引:不允许值重复或者值为空,并且每个表只能有一个主键。必须指定关键字 PRIMARY KEY。
4、空间索引:创建空间索引时,使用SPATIAL关键字。要求,引擎为MyISAM,创建空间索引的列,必须将其声明为NOT NULL
5、全文索引:全文索引只能在 VARCHAR 或 TEXT 类型的列上创建,并且只能在 MyISAM 表中创建。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值