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

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

  • 相关阅读:
    MES管理系统对印刷企业来说有什么优点
    c#向c++(opencv)实现base64图像数据传递和编解码
    智慧路灯物联网管理平台及应用
    DGIOT数字工厂工单结构介绍
    MATLAB循环结构之while语句
    外包就干了2个月,技术退步明显....
    【HCIA】交换基础
    使用Python进行数据分析与可视化
    vue3 + elementPlus实现select下拉框插入确定和取消按钮。
    决策树概念
  • 原文地址:https://blog.csdn.net/wuxiaopengnihao1/article/details/127793865