mysql myisam索引_MySQL---有关MySQL索引及InnoDB和MyISAM的索引区别

本博客是用来记录自己学习的过程

MySQL的索引类型

FULLTEXT 全文索引 MyISAM存储引擎支持全文索引(InnoDB在 MySQL 5.6.4 版本中也开始支持全文索引),用于查找文本的关键词,而不是直接比较是否相等。

查找条件使用MATCH AAINST,而不是普通的where。 全文索引的格式:MATCH(colunName) AGAINST('String') eg: select * from A where MATCH('name') AGAINST('long');

全文索引使用倒排索引实现,它记录着关键词到其所在文档的映射

2.Hash 哈希

哈希索引能以O(1)时间进行查找,但是没有了有序性:

无法用于排序与分组 只支持精确查找,

无法用于部分查找和范围查找 InnoDB储存引擎有一个特殊的功能叫"自适应哈希索引",当某个索引值被使用的非常频繁时,会在B+ Tree索引之上在创建一个哈希索引,这个就让B+Tree索引具有哈希索引的一些优点,例如快速的哈希查找。

3.B Tree

B+Tree MYSQL 默认的索引类型 是大多数MySQL储存引擎的默认索引类型。

因为不再需要进行全表扫描,只需要对树进行搜索即可,所以查找速度快很多。

除了用于查找,还可以用于排序和分组 可以指定多个列作为索引列,多个索引列共同组成键 使用于全键值,键值范围和键前缀查找。其中键前缀查找只适用于左前缀查找。

如果不是按照索引列的顺序查找,则无法使用索引 InnoDB的B+ Tree索引分为主索引和辅助索引,主索引的叶子节点 的数据域记录着完整的数据记录。这种索引被称为聚集索引。因为无法把数据行存放在两个不同的地方。所以一个表只能有一个。

辅助索引的叶子节点数据域记录着主键值,当使用辅助索引查找时,先查找主键值再进入主索引进行查找

f2937fd24756785dafa910a9bddb6592.png

4.R-Tree 空间数据索引

MyISAM储存引擎支持空间数据索引(R-Tree),可以用于地理数据存储,空间数据索引会从所有维度来索引数据,可以有效地使用任意维度来进行组合查询。必须使用GIS相关函数来维护数据

InnoDB和MyISAM b+tree索引区别

1.MyISAM b+tree 子节点使用的是存储对象的地址(非聚集索引),InnoDB子节点储存的是数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值