zoukankan      html  css  js  c++  java
  • MySQL-索引


    一、索引的数据结构

    B-Tree索引

    B+Tree索引,InnoDB使用

    关于Tree的解释可以查看这里:

        MySQL索引原理
         mysql innodb: b+树 的优点

    二、使用索引

    哪些查询可以使用B-Tree索引?

    • 全值匹配
    • 匹配最左原则,只是用索引的第一列
    • 匹配列前缀,只是用索引的第一列
    • 匹配范围值,只是用索引的第一列
    • 精确匹配某一列并范围匹配另一列,第一列全值匹配,第二列范围匹配
    • 只访问索引的查询

    B-Tree索引限制

    • 不是按照最左列开始查询
    • 不能跳过索引中的列
    • 如果查询中某列使用了范围查询,则其右边的列都无法使用索引


    三、其他索引

    哈希索引,Memory引擎使用,只有精确匹配索引的所有列才有效。

    空间数据索引R-Tree,MyISAM支持使用。

    全文索引,类似于搜索引擎。

    四、索引策略

      • 独立的列
      • 前缀索引
      • 多列索引/索引合并
      • 合适的索引列顺序
      • 聚簇索引,数据行存放在索引的叶子页,节点页只包含索引列
      • 覆盖索引,索引包含所有需要查询的字段的值,无需回表
      • 用索引扫描排序
      • 压缩(前缀压缩)索引,MyISAM使用前缀压缩来减少索引大小,可以提高性能
      • 冗余和重复索引,影响性能,考虑删除
      • 未使用的索引,考虑删除
      • 索引和锁,InnoDB只有访问行时才回加锁,而索引能够减少InnoDB访问的行数,从而减少锁的数量。
  • 相关阅读:
    Manjaro19.0.2 electron-酸酸乳 无法添加订阅地址
    cnblogs美化技巧
    manjaro19.0.2+typora+PicGo
    剑指offer 面试题7.重建二叉树
    剑指offer 面试题6.从尾到头打印链表
    add sudo user
    tensorflow 禁用 gpu
    kill screen detached session
    git 修改远程仓库链接
    grub 分辨率修改
  • 原文地址:https://www.cnblogs.com/bigshark/p/7912425.html
Copyright © 2011-2022 走看看