失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > MySQL FULLTEXT HASH BTREE RTREE索引优缺点介绍

MySQL FULLTEXT HASH BTREE RTREE索引优缺点介绍

时间:2023-03-30 11:52:09

相关推荐

MySQL FULLTEXT HASH BTREE RTREE索引优缺点介绍

MySQL 主要集中索引类型:FULLTEXT,HASH,BTREE,RTREE

1. FULLTEXT

即为全文索引,目前只有MyISAM支持。不过目前只有 CHAR,VARCHAR,TEXT列上 可以创建全文索引。

2. HASH

由于 HASH 的唯一(几乎100%的唯一)及类似键值对的形式,很适合作为索引。

HASH索引 可以一次定位,不需要像树形索引那样逐层查找,因此效率极高。但是,这种高效是有限制的,即只有在 “=” 和 “in” 条件下高效,对于范围查询、排序及组合索引仍然效率不高。

3. BTREE

BTREE索引就是一种将索引值按一定的算法,存入一个树形的数据结构中(二叉树),每次查询都是从树的入口 root开始,依次遍历 node,获取leaf这是MySQL里默认和最常用的索引类型。

4. RTREE

RTREE在MySQL 很少使用,仅支持 geometry数据类型,支持该类型的存储引擎只有 MyISAM、DBb、InnoDB、NDb、Archive几种。

相对于BTREE,RTREE的优势在于范围查询。

行锁表锁:

简述: InnoDB行锁是通过索引上的索引项加锁来实现的, 这一点MySQL和Oracle不同, 后者是通过在数据库中相对应的数据行加锁来实现的. InnoDB这种行锁实现特点意味着: 只有通过索引条件检索数据, InnoDB 才使用行级锁, 否则, InnoDB将使用表锁!

1. 在不通过索引条件查询的时候, InnoDB 确实使用的是表锁, 而不是行锁.

2. 由于MySQL的行锁是针对索引加的锁, 不是针对记录加的锁, 所以虽然访问不同的行记录. 但是如果使用的是相同的索引键, 时会出现锁冲突的. 应用设计的时候要注意这一点

好了, 以上是本文所有内容,希望对大家有所帮助,也希望大家对码农之家多多支持,你们的支持是我创作的动力!祝大家生活愉快!

如果觉得《MySQL FULLTEXT HASH BTREE RTREE索引优缺点介绍》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。