加载中...
第5章 MySQL索引
发表于:2021-08-08 | 分类: 《MySQL技术内幕》读书笔记
字数统计: 591 | 阅读时长: 2分钟 | 阅读量:

InnoDB支持的索引

  • B+树索引
  • 全文索引
  • 哈希索引(自适应)

说说B+树吧

B+树就是一种平衡搜索树。所有的记录节点都按照键值从小到大顺序放在同一层的叶子节点上,如下图所示

聚集索引和辅助索引

假设有个表如下:

聚集索引就是用每个表的主键构造一课B+树。每个叶子节点里放表的行数据,并且每个叶子在不同的磁盘上面

  • 如下图所示:如果要查找id=5的数据,那么先把磁盘0读入内存,然后用二分法查找id=5的数在3和6之间,然后通过指针p1查找到磁盘2的地址,然后将磁盘2读入内存中,用二分查找方式查找到id=5的数据


辅助索引的叶子节点里不包含一行数据的全部数据。如果要找一个完整的行数据,可以通过辅助索引找到指向主键索引的指针,然后去聚集索引里找到完整行数据

  • 如下图所示:如果要查找到name = 小徐,首先将磁盘0加载到内存中,然后用二分查找的方法查到在指针p1所指的地址上,然后通过指针p1所指的地址可知道在磁盘2上面,然后通过二分查找法得知小徐id=4。然后在根据id=4将磁盘0加载到内存中,用上述聚集索引的方法找到完整的行数据


如何创建和删除索引

  • 一开始创建数据库的时候,会创建主键的聚集索引,之后需要手动加入其他属性(列)的索引。对于不常查询的属性,不需要建立索引,会降低更新操作的速度

再说说自适应哈希索引吧

  • 这是数据库自动创建的,不能手动创建
  • 只能用于精准查找,如SELECT ... FROM TABLE WHERE col_name = 'xxx'

最后说说全文索引吧

  • LIKE 'xxx%'这种是可以用B+树索引的,但是LIKE '%xxx%'就不行,所以需要全文索引
  • 以前InnoDB不支持全文索引,现在的版本支持了
  • 在这里仅作了解,等以后再深入研究
上一篇:
第8章 备份与复制
下一篇:
第3章 MySQL日志
本文目录
本文目录