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的行锁是针对索引加的锁, 不是针对记录加的锁, 所以虽然访问不同的行记录. 但是如果使用的是相同的索引键, 时会出现锁冲突的. 应用设计的时候要注意这一点

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值